Получить ассоциативный массив из CSV - PullRequest
2 голосов
/ 05 декабря 2010

Я открываю CSV-файл с URL. Каждая строка имеет 4 поля и каждое поле имеет имя:

Field1;Field2;Field3;Field4

Теперь мой скрипт обрабатывает данные csv одной строкой, но я хочу, чтобы это было так:

Array
(
   [0] => array(
                  ['field1'] => 1
                  ['field2'] => 2
                  ['field3'] => 3
                  ['field4'] => 4
   )
)

Есть идеи?

Вот мой код:

if (($handle = fopen ( $eurl, "r" )) !== FALSE) {
        while ( ($data = fgetcsv ( $handle, 4096, ";" )) !== FALSE ) {
        $num = count ( $data );
            for($c = 0; $c < $num; $c ++) {
                echo $data [$c];
            }
        }
    fclose ( $handle );
    }

1 Ответ

1 голос
/ 05 августа 2013

t.csv
id; имя; пол; возраст
1; xudong; m; 23
2; гнездо; f; 24
3; minjie; f; 25

<?php
$eurl = "t.csv";
if (($handle = fopen ( $eurl, "r" )) !== FALSE) {
    $keys = fgetcsv ( $handle, 4096, ";" );
    while ( ($data = fgetcsv ( $handle, 4096, ";" )) !== FALSE ) {
        $res[] = array_combine($keys, $data);
    }
    fclose ($handle);
}
var_dump($res);
...