Оператор ...
впервые введен в PHP 5.6
как аргумент распаковки оператор
В PHP 7.4
, однако они вводят новое использование этого оператора и называют его оператор распространения , в котором массив с префиксом ...
будет расширен местами во время определения массива.
Теперь, когда вы используете оператор splat ...
таким образом
list($headers, ...$rows) = explode("\n", $csv_data);
Это означает, что вы хотите извлечь значения в массиве $rows
для представления значений в вашем массиве $csv_data
Итак, если $rows
содержит
$rows = ['row1', 'row2', 'row3'];
, это примерно эквивалентно
list($headers, $row1, $row2, $row3) = explode("\n", $csv_data);
Но это невозможно!
Неустранимая ошибка: оператор распространения не поддерживается в назначениях
Вам нужно str_getcsv для синтаксического анализа ваших данных CSV в массив
Использование
$csv = array_map('str_getcsv', file('file.csv'));