PHP - 从csv文件中获取某些列到数组中
问题描述:
我真的很努力地研究如何将csv文件中的某些数据列转换为数组。目前我可以将整个事物转换为一个阵列使用:PHP - 从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种问题。但是第一个(标题中)是最主要的一个。 谢谢
答
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]);
答
您可以在每一行上使用explode()来获取数组中的列。然后当你写信给$ csv时,只要选择你想要的就可以跳过你不想要的。
for{
$row = explode(",", $line);
$csv[$key]['wantedcol1'] = $row[0]; //first col
$csv[$key]['wantedcol2'] = $row[2]; //third col
}
这只是一个简单的小例子,它在写入$ csv时跳过文件的第二列。
感谢您的答复迈克尔想要的列数。对不起我的不高兴,但我不知道你的意思完全是什么?你有一个例子吗?或者可以指点我一个例子? 谢谢 –
挖掘explode()的文档,...你会很好地使用它,它非常简单。它要求一个分隔符和一个字符串。在你的情况下,把每行/每行,并使用逗号作为分隔符。它会将该字符串转换为数组。使用print_r()来查看爆炸()正在输出什么。你可以从数组中选择你想要的列。把你的手弄脏,你会没事的。 – MichaelClark
我以前用过多次爆炸,只是没有这样的情况。也许我有点困惑?我可以创建数组,我只想知道如何从该数组中选择列。 对于它在我的表生成器中工作,它需要是那些特定的列,而不是别的。我知道我可以打印完整阵列中的某些列,这是你的意思吗? 这是多维的,并使用索引的一切。我希望我有道理?我想我只是在思考你的建议算法时遇到麻烦?谢谢, –