-2

.csv ファイル:

question1,question2,question3,question4,question5,question6,question7,question8,question9,question10
yes,response,response,response,response,response,response,response,response,response
yes,response2,response2,response2,response2,response2,response2,response2,response2,response2
no,response3,response3,response3,response3,response3,response3,response3,response3,response3

この結果をphpで取得したい。

$question = "the_question_goes_here"

質問1
はい = 2
いいえ = 1

コードは、質問ごとに一意の回答を見つけ、それぞれの回答数をカウントする必要があります。

誰でも助けることができますか?

4

2 に答える 2

0

str_getcsv()csv文字列を配列として取得するために使用できます。

これを使用して、値を(擬似コードで)カウントアップする配列上にループを作成できます。

counts = array;
//Loop over each row
for(row in csvrows){
     for(cell in row){
         counts[rowHeader][cellValue] = counts[rowHeader][cellValue]+1;
     }
}
于 2013-02-04T20:58:58.810 に答える
0

これにより、ファイルの内容をPHPに読み込むトリックが実行されます。

$data= array();    
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        foreach ($data as $position => $value)  {
            if($row == 1) {
                $data[$position]['question'] = $value;
                $data[$position]['yes'] = 0;
                $data[$position]['no'] = 0;
                continue;
            }
            if ($value == 'yes') {
                  $data[$position]['yes'] = $data[$position]['yes'] + 1
            } elseif ($value == 'no') {
                  $data[$position]['no'] = $data[$position]['no'] + 1
            }
        }
        $row++;            
    }        
    fclose($handle);
}

これにより、次のように読み取ることができる配列が返されます

  • 配列値
    • 「質問」キー保持テキスト
    • numOfyesを保持する「yes」キー
    • 'no'キー保持numOfno
于 2013-02-04T21:00:55.157 に答える