Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CSV中的计数值_Php_Arrays_Csv - Fatal编程技术网

Php CSV中的计数值

Php CSV中的计数值,php,arrays,csv,Php,Arrays,Csv,.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,re

.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中得到这个结果

$QUISE=“问题在这里”

问题1
是=2
否=1

代码必须找到每个问题的唯一答案,并计算每个问题的答案数量

有人能帮忙吗?

str\u getcsv()
可以用来获取作为数组的csv字符串

使用此选项,您可以在数组上编写一个循环,用于对值进行计数(伪代码):


这应该可以将文件内容读入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);
}
这将返回一个数组,您可以这样读取它

  • 数组值
    • “问题”键保持文本
    • “是”钥匙持有numOf是
    • “否”键持有numOf no

您是否可以控制CSV文件的生成方式?看,拜托。你能帮我做作业吗?这个不行。同样重要的是,代码本身可以找到所有唯一的响应。这应该可以让您开始。我不打算写完整的解决方案。试着建立在这个答案或任何其他答案上。如果你不能解决问题,就用不同的深度问题进行报告。
$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);
}