Как Лукаш Лалинский написал в своем комментарии к ответ CSL fgetcsv()
ваш друг (кстати str_getcsv()
недоступно до PHP 5.3).
Код должен быть простым как (обработка ошибок оставлена на OP):
$headers = null;
$rowNum = 0;
$tableData = array();
$handle = fopen($_FILES['parameter_file']['tmp_name'], 'r');
while (($data = fgetcsv($handle)) !== false) {
if ($rowNum == 0) {
// parsing the CSV header
$headers = array();
foreach ($data as $d) {
$headers[] = $d;
}
} else {
// parsing the data rows
$rowData = array();
foreach ($data as $d) {
$rowData[] = $d;
}
$tableData[] = array_combine($headers, $rowData)
}
$rowNum++;
}
fclose($handle);
Учитывая CSV-файл:
id,name,value
1,first,value1
2,second,value2
3,third,value3
это даст вам массив headers
с
array(
0 => 'id',
1 => 'name',
2 => 'value'
)
и массив $tableData
с
array(
0 => array(
'id' => '1',
'name' => 'first',
'value' => 'value1'
),
1 => array(
'id' => '2',
'name' => 'second',
'value' => 'value2'
),
2 => array(
'id' => '3',
'name' => 'third',
'value' => 'value3'
)
)
Настройте код по необходимости ...