PHP - 从 csv 文件中获取某些列到数组中

PHP - Getting certain columns from csv file into array

我真的很难弄清楚如何将 csv 文件中的某些数据列转换为数组。目前我可以使用以下方法将整个事物转换为数组:

$csv = array();

$lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES);

foreach ($lines as $key => $value)
{
    $csv[$key] = str_getcsv($value);
}

但是有没有办法只从数组中获取某些列?例如第 1 列和第 2 列,还是第 1 到 4 列?等等

我的目标是这样做,这样我就可以用 FPDF 将某些数据放入 table。我也在苦苦挣扎:/

-因此,如果有人知道如何快速将漂亮的 table 放入 FPDF,请告诉我。我正在尝试使用站点中的 BasicTable 函数,但我的 table 离开了页面并且看起来不太好。第一次用,效果非常好

我知道这是两个问题。但是第一个(在标题中)是开始的主要内容。 谢谢

您可以在每一行上使用 explode() 来获取数组中的列。然后当你写入 $csv 时,只需选择你想要的,跳过你不需要的。

for{
    $row = explode(",", $line);
    $csv[$key]['wantedcol1'] = $row[0];  //first col
    $csv[$key]['wantedcol2'] = $row[2];  //third col
}

这只是一个简单的小示例,它在写入 $csv 时跳过文件的第二列。

str_getcsv() 解析单行,您只需从该行中提取数据即可。

$csv = array();

$lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES);

foreach ($lines as $key => $value)
{
    $row = str_getcsv($value);
    $csv[$key] = array($row[0], $row[1], ..., $row[n]);
}

array($row[0], $row[1], ..., $row[n]);

中指定所需的列号