PHP - 将csv文件中的某些列转换为数组

时间:2016-07-24 05:14:08

标签: php arrays csv fpdf

我真的很想弄清楚如何将某些数据列从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的表中。我也在努力:/

- 如果有人知道如何快速将漂亮的桌子放入FPDF,请告诉我。我正在尝试使用网站上的BasicTable功能,但我的桌子离开页面并且看起来并不好看。这是我第一次使用它,而且非常糟糕。

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

2 个答案:

答案 0 :(得分:1)

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

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

这只是一个简单的小例子,它正在编写$ csv时从文件中跳过第二列。

答案 1 :(得分:1)

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]);

中指定所需的列号