Intereting Posts
Определение процента для случайного числа Список каталогов, содержащих символы Unicode в Windows OneNote API не может получать заметки из общего ноутбука для обмена пользователями Ошибка при загрузке листа excel Использование phpexcel получить последние подкасты из магазина itunes со ссылкой на RSS, JSON или что-то Добавить опцию запаса в Woocommerce 3.0 PHP cURL: получить цель перенаправления, не следуя ей Удалить несколько строк с PDO и флажками с помощью подготовленных операторов? Код для получения размера файла после загрузки и вставки в таблицу не работает Подсчитывая, сколько полей MySQL в строке заполнено (или пусто) Сопряжение числа строк php перепутано Как отключить скомпилированное расширение в PHP Does move_uploaded_file () автоматически удаляет временный загруженный файл после SUCCESSful Move? Доступ к комментариям поля MySQL к PHP Как загрузить расширение pthreads в CLI?

Преобразование CSV в массив

У меня есть этот массив с кодами аэропортов и названиями городов (около 3500 строк).

code,city "Abilene, TX ",ABI "Adak Island, AK ",ADK "Akiachak, AK ",KKI "Akiak, AK ",AKI "Akron/Canton, OH ",CAK "Akuton, AK ",KQA "Alakanuk, AK ",AUK "Alamogordo, NM ",ALM 

Мне нужно преобразовать этот файл в php-массив. Это мой код:

 if(($handle = fopen('test.csv', 'r')) !== FALSE) { while (($data = fgetcsv($handle, 1000, ',', '"')) !== FALSE) { echo '<pre>'; print_r($data); echo '</pre>'; } fclose($handle); } 

Хотя я устанавливаю символы разделителя и enclousure для функции fgetcsv, я получаю это как результат:

 Array ( [0] => code [1] => city "Abilene [2] => TX " [3] => ABI "Adak Island [4] => AK " [5] => ADK "Akiachak [6] => AK " [7] => KKI "Akiak [8] => AK " [9] => AKI "Akron/Canton [10] => OH " [11] => CAK "Akuton [12] => AK " [13] => KQA "Alakanuk [14] => AK " [15] => AUK "Alamogordo [16] => NM " [17] => ALM ) 

Если это разрывы строк, вы можете попробовать метод грубой силы с помощью:

 $file = file_get_contents("test.csv"); $data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $file)); print_r($data); 

str_getcsv доступен с PHP 5.3 или как обходной путь в руководстве, через upgradephp или PHP_Compat .

Попробуй это:-

 ini_set('auto_detect_line_endings', TRUE);/// (PHP's detection of line endings) write at the top. $csvrows = array_map('str_getcsv', file($filepath)); $csvheader = array_shift($csvrows); $csv = array(); foreach ($csvrows as $row) { $csv[] = array_combine($csvheader, $row); } 

пытаться-

 $csv = array(); if (($file = fopen('test.csv', 'r')) === false) { throw new Exception('There was an error loading the CSV file.'); } else { while (($line = fgetcsv($file, 1000)) !== false) { $csv[] = $line; } fclose($handle); }