我有一个csv文件,想要在php中使用。CSV文件的第一行是列名。每个值都是用逗号分隔的。
我希望能够把列名作为数组名称,并将该列的所有值放在该数组名称下面。所以,如果在column1下面有20行,则可以通过column1 [0]来显示第一行的内容(不是列名)。
如何实现这个功能?
我希望能够把列名作为数组名称,并将该列的所有值放在该数组名称下面。所以,如果在column1下面有20行,则可以通过column1 [0]来显示第一行的内容(不是列名)。
如何实现这个功能?
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];
}
fgetcsv
只支持 PHP 5.3.4 或更高版本。也许你正在使用早期版本的 PHP。 - Sumit Gera