无法按列搜索CSV文件。例如,假设我有一个像这样的csv文件:
NAME,有一个IPHONE,有ANDROID
鲍勃,是的,不,
fred,no,yes,
如何使用php在第2列中搜索“是”值, 然后只打印第二列结果中的yes?
请帮助:(
答案 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";
}
}