PHP 遍历 csv 的每一行和具有匹配元素的 return 行
PHP iterate through each row of csv and return row with matching element
我有一个名为 data.csv 的 csv 文件。
这是 data.csv
中的示例
Microsoft,2020-02-13,"Sample",tt,aa,qq,w,ee,rr,tt,", ",", ",", ","2020-02-13 16:03:08"
Google,2020-02-13,"HQ",tt,aa,qq,w,ee,rr,tt,", ",", ",", ","2020-02-13 16:10:48"
我正在尝试遍历 csv 的每一行并检查用户输入的变量(比如说 var="Microsoft")是否与任何行中的第一个值匹配。如果确实匹配,则 return 该行中的所有元素作为一个数组。 (尝试使用 fgetcsv 但 return 整个 csv 文件)
这是我目前尝试过的方法:
foreach ($csv as $line) {
if ($line[0] == 'Microsoft') {
$file = fopen("data.csv","r");
echo(fgetcsv($file));
fclose($file);
}
}
$csv = array_map('str_getcsv', file('./temp.csv'));
foreach ($csv as $line) {
if ($line[0] == 'Microsoft') {
echo implode(', ',$line);
}
}
如果第一列的值适合作为数组索引。您可以使用 array_column 按第一列重新编制索引:
<?php
$result = array_column(array_map('str_getcsv', file('data.csv')), null, 0)['Microsoft'] ?? null;
我有一个名为 data.csv 的 csv 文件。
这是 data.csv
中的示例Microsoft,2020-02-13,"Sample",tt,aa,qq,w,ee,rr,tt,", ",", ",", ","2020-02-13 16:03:08"
Google,2020-02-13,"HQ",tt,aa,qq,w,ee,rr,tt,", ",", ",", ","2020-02-13 16:10:48"
我正在尝试遍历 csv 的每一行并检查用户输入的变量(比如说 var="Microsoft")是否与任何行中的第一个值匹配。如果确实匹配,则 return 该行中的所有元素作为一个数组。 (尝试使用 fgetcsv 但 return 整个 csv 文件)
这是我目前尝试过的方法:
foreach ($csv as $line) {
if ($line[0] == 'Microsoft') {
$file = fopen("data.csv","r");
echo(fgetcsv($file));
fclose($file);
}
}
$csv = array_map('str_getcsv', file('./temp.csv'));
foreach ($csv as $line) {
if ($line[0] == 'Microsoft') {
echo implode(', ',$line);
}
}
如果第一列的值适合作为数组索引。您可以使用 array_column 按第一列重新编制索引:
<?php
$result = array_column(array_map('str_getcsv', file('data.csv')), null, 0)['Microsoft'] ?? null;