我正在尝试读取CSV文件,格式为:
titleA,titleB,titleC
data1A,data1B,data1C
data2A,data2B,data3C
预期的OUTPUT是:
Array
(
[0] => Array
(
[titleA] => data1A
[titleB] => data1B
[titleC] => data1C
)
[1] => Array
(
[titleA] => data2A
[titleB] => data2B
[titleC] => data2C
)
我尝试使用我在这里唠叨的东西:
if (($handle = fopen($filename, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$twoDarray[] = $data;
}
fclose($handle);
}
但是它显示了包含所有标题的1个数组和包含数据的其他2个数组。
答案 0 :(得分:2)
您想要阅读第一行并将其用作键并组合:
if (($handle = fopen($filename, "r")) !== FALSE) {
$titles = fgetcsv($handle, 1000);
while (($data = fgetcsv($handle, 1000)) !== FALSE) {
$twoDarray[] = array_combine($titles, $data);
}
fclose($handle);
}
答案 1 :(得分:-1)
您可以将firslt作为标题,然后将其与每行合并。
$heading = array();
$heading_check =1;
if (($handle = fopen($filename, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($heading_check){
$heading = $data;
$heading_check=0;
continue;
}
$twoDarray[] = array_combine($heading,$data);
}
fclose($handle);
}