CSV в ассоциативный массив

Есть csv такого формата

'01.09.2021';'День Знаний'
'30.10.2021';'Хэллоуин'

Как распарсить его в ассоциативный массив такого вида

$events = array(
    '01.09.2021'    => 'День Знаний',
    '30.10.2021'    => 'Хэллоуин',
);

Ответы (2 шт):

Автор решения: Алексей Шиманский

Зависит от объёма файла. Предположим, что он небольшой. Тогда:

  1. Считать файл

    $fileData = file_get_contents('1.csv');
    
  2. Сделать разбор CSV-строки в массив с помощью str_getcsv, где вторым параметром указать разделитель строк

    $dataArray = str_getcsv($fileData, "\n");
    
  3. Создать переменную, куда будет складываться результат (предположим $result = []);

  4. Пробежаться циклом по $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);
→ Ссылка