将CSV列读入PHP数组

6
有没有一种 PHP 函数可以将 CSV 文件的某一列(而不是某一行)读入数组或字符串中?
提前感谢。

1
阅读该行,然后仅保留您感兴趣的列?此外,“转换为数组或字符串”没有意义。数组和字符串代表不同的东西。 - Jon
4个回答

12
$csv = array_map("str_getcsv", file("data.csv")); 
$header = array_shift($csv); 
// Seperate the header from data

$col = array_search("Value", $header, true); 
 foreach ($csv as $row) {      
 $array[] = $row[$col]; 
}

1
请注意,如果您在array_search中使用的第一个参数不在您的文件中,您仍将获得第一列。 - adam rowe

4
希望这能帮到你。使用fgetcsv函数,只需获取所需列的行位置即可。

2
$arr=array();
$row = -1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);

        $row++;
        for ($c = 0; $c < $num; $c++) {
            $arr[$row][$c]= $data[$c];
        }
    }
    fclose($handle);
}

2

您可以尝试使用fgetcsv方法来读取文件。它可以逐行读取文件并返回关联数组。该函数专门用于从CSV文件中读取。

无论如何,即使您只需要处理一列,也必须逐行读取每一行。

http://php.net/manual/zh/function.fgetcsv.php


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接