我真的很想弄清楚如何将某些数据列从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功能,但我的桌子离开页面并且看起来并不好看。这是我第一次使用它,而且非常糟糕。
我知道这是两个问题。但第一个(标题中)是主要的开始。 感谢
答案 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]);