解析csv文件php

时间:2010-10-14 04:19:08

标签: php csv

我有一个csv文件,我想用php。 csv中的第一件事是列名。一切都用逗号分隔。

我希望能够将列名称作为数组名称,并且该列的所有值都将在该数组名称下。因此,如果column1下有20行,那么我可以执行column1 [0],并且第一个实例(不是列名)将显示为column1。

我该怎么做?

1 个答案:

答案 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];
}