Иногда случается, что необходимо преобразовать csv файл в ассоциативный массив php. Встроенной функции для этого я не нашел, по этому пришлось писать свою.
$options = array(
'enable' => true, // Скрипт работает только если значение TRUE
/* Настройки CSV */
'filename' => 'seo.csv', // Имя файла CSV. Находиться должен в одной папке со скриптом
'delimiter' => ';', // Какой разделитель используется
);
if(!$options['enable']) die('Скрипт отключен, дальнейшая обработка данных невозможна!');
function csv_to_array($filename) {
if(!file_exists($filename) || !is_readable($filename)){
return FALSE;
}
global $options;
$header = NULL;
$data = array();
if (($handle = fopen($filename, 'r')) !== FALSE) {
while (($row = fgetcsv($handle, 1000, $options['delimiter'])) !== FALSE) {
if(!$header)
$header = $row;
else
$data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}
$seo_arr = csv_to_array($options['filename']);
С помощью вот такого не хитрого кода можно быстро преобразовать CSV файл в массив.