使用PHP按列搜索CSV?

时间:2015-08-09 16:22:42

标签: php html csv

无法按列搜索CSV文件。例如,假设我有一个像这样的csv文件:

  

NAME,有一个IPHONE,有ANDROID

     

鲍勃,是的,不,

     

fred,no,yes,

如何使用php在第2列中搜索“是”值, 然后只打印第二列结果中的yes?

请帮助:(

3 个答案:

答案 0 :(得分:3)

我想,这可以帮到你。阅读fgetcsv

 <?php

    $result  = [];
    if (($handle = fopen("test.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
          if($data[1] == 'yes') //Checks secound colums is yes 
              array_push($data);
        }
        fclose($handle);

      var_dump($result);
    }
    ?>

答案 1 :(得分:2)

假设您已经parsed the csv file into an array array_keys函数的第二个参数是 mixed $search_value

  

如果指定,则仅返回包含这些值的键。

要搜索特定列,请使用array_column

$res = array_keys(array_column($csv, 1), "yes");

test at eval.in;这将返回所有的关键&#34;是&#34;匹配在第二列。

答案 2 :(得分:1)

你有没有尝试过任何事情,如果是的话也请发布,你可能会发现这个有用的

$csv = array_map('str_getcsv', file('data.csv'));

foreach($csv as $line){
    if($line[1] == 'yes'){
        //do what ever you want
        echo "found yes";
    }
}