我有一个csv文件,我想用php。 csv中的第一件事是列名。一切都用逗号分隔。
我希望能够将列名称作为数组名称,并且该列的所有值都将在该数组名称下。因此,如果column1下有20行,那么我可以执行column1 [0],并且第一个实例(不是列名)将显示为column1。
我该怎么做?
答案 0 :(得分:9)
您希望fgetcsv
它将CSV文件的每个行作为数组。由于您希望将每个列放入其自己的数组中,因此可以从该数组中提取元素并将其添加到表示列的新数组中。类似的东西:
$col1 = array();
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$col1[] = $row[0];
}
或者,您可以使用fgetcsv
将整个CSV文件读入2D矩阵(如果CSV文件不是太大),如下所示:
$matrix = array();
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$matrix[] = $row;
}
然后将您想要的列提取到它们自己的数组中:
$col1 = array();
for($i=0;$i<count($matrix);$i++) {
$col1[] = $matrix[0][i];
}