0
다음은 내 CSV 파일입니다. 보시다시피, 5 열이고 5 열에는 쉼표로 구분 된 여러 옵션이 있습니다. 당신이 할 수 여기에 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