str_getcsv () ожидает, что строка, переданная в качестве параметра, будет одна запись.
Но так как ваш источник в любом случае является файлом, самый простой способ, вероятно, использовать fgetcsv () вместо str_getcsv ()
$data = array();
$fp = fopen($targetFile, 'rb');
while(!feof($fp)) {
$data[] = fgetcsv($fp);
}
fclose($fp);
автономный пример:
<?php
$targetFile = 'soTest.csv';
setup($targetFile);
$data = array();
$fp = fopen($targetFile, 'rb');
while(!feof($fp)) {
$data[] = fgetcsv($fp);
}
var_dump($data);
function setup($targetFile) {
file_put_contents($targetFile, <<< eot
1,name,address,town,state,zip,phone,website,other,other
2,name,address,town,state,zip,phone,website,other,other
3,name,address,town,state,zip,phone,website,other,other
eot
);
}
печать
array(3) {
[0]=>
array(10) {
[0]=>
string(1) "1"
[1]=>
string(4) "name"
[2]=>
string(7) "address"
[3]=>
string(4) "town"
[4]=>
string(5) "state"
[5]=>
string(3) "zip"
[6]=>
string(5) "phone"
[7]=>
string(7) "website"
[8]=>
string(5) "other"
[9]=>
string(5) "other"
}
[1]=>
array(10) {
[0]=>
string(1) "2"
[1]=>
string(4) "name"
[2]=>
string(7) "address"
[3]=>
string(4) "town"
[4]=>
string(5) "state"
[5]=>
string(3) "zip"
[6]=>
string(5) "phone"
[7]=>
string(7) "website"
[8]=>
string(5) "other"
[9]=>
string(5) "other"
}
[2]=>
array(10) {
[0]=>
string(1) "3"
[1]=>
string(4) "name"
[2]=>
string(7) "address"
[3]=>
string(4) "town"
[4]=>
string(5) "state"
[5]=>
string(3) "zip"
[6]=>
string(5) "phone"
[7]=>
string(7) "website"
[8]=>
string(5) "other"
[9]=>
string(5) "other"
}
}
edit2: Для использования первого элемента каждой записи в качестве ключа в массиве результатов:
<?php
$targetFile = 'soTest.csv';
setup($targetFile);
$data = array();
$fp = fopen($targetFile, 'rb');
while(!feof($fp)) {
$row = fgetcsv($fp);
$id = array_shift($row);
$data[$id] = $row;
}
var_dump($data);
function setup($targetFile) {
file_put_contents($targetFile, <<< eot
1,name,address,town,state,zip,phone,website,other,other
2,name,address,town,state,zip,phone,website,other,other
3,name,address,town,state,zip,phone,website,other,other
eot
);
}