CSV в ассоциативный массив
Есть csv такого формата
'01.09.2021';'День Знаний'
'30.10.2021';'Хэллоуин'
Как распарсить его в ассоциативный массив такого вида
$events = array(
'01.09.2021' => 'День Знаний',
'30.10.2021' => 'Хэллоуин',
);
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Зависит от объёма файла. Предположим, что он небольшой. Тогда:
Считать файл
$fileData = file_get_contents('1.csv');Сделать разбор CSV-строки в массив с помощью str_getcsv, где вторым параметром указать разделитель строк
$dataArray = str_getcsv($fileData, "\n");Создать переменную, куда будет складываться результат (предположим
$result = []);Пробежаться циклом по
$dataArrayприменяя к каждому элементу функцию разбиения по разделителю explode и складывать в результирующий
Автор решения: Kvandaik
→ Ссылка
$File="c:\\text\\text.csv";
$file10 = file($File, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
foreach ($file10 as $key => $value) {
$sen=explode(';', $value);
$stroka[$sen[0]]=$sen[1];
}
print_r($stroka);