0
以下是我的CSV文件。正如你所看到的,它是五列,第五列還有多個選項,逗號分隔。PHP str_getcsv產生意外的數組輸出
column 1,column 2,column 3,column 4,column 5
value,value,value,value,"value, value2, value3"
val,val,val,val,"opt, opt2, opt3"
這裏是我使用的分析上面的代碼...
$csvData = file_get_contents('test2.csv');
$csvNumColumns = 5;
$csvDelim = ',';
$csvEnclosure = '"';
$results = array_chunk(str_getcsv($csvData, $csvDelim, $csvEnclosure), $csvNumColumns);
print_r($results);
我的print_r的輸出如下...
Array
(
[0] => Array
(
[0] => column 1
[1] => column 2
[2] => column 3
[3] => column 4
[4] => column 5
value
)
[1] => Array
(
[0] => value
[1] => value
[2] => value
[3] => value, value2, value3
val
[4] => val
)
[2] => Array
(
[0] => val
[1] => val
[2] => opt, opt2, opt3
)
)
,你可以看到,由於某種原因,這是不正確的解析。我想我可以用新的線條爆炸,然後再用逗號爆炸......但是,我想知道爲什麼這不起作用。
或者,您可以將字符串爆炸(「\ n」),然後遍歷每行並將其反饋給str_getcsv – ina
@ina,如果任何字段包含新行字符,將會失敗。 – goat