Ошибки в этих строках:
$date_array .= $date;
$aeroports_dates_array[$aeroport] .= $date_array;
.=
- оператор связывания . Он выполняет конкатенацию строк и сохраняет значение в своем левом операнде.
Это эквивалентно:
$date_array = $date_array . $date;
Оператор конкатенации строк (.
) ожидает две строки и преобразует свои операнды к строкам перед их объединением. $date_array
является массивом, и любой массив, преобразованный в строку, создает строку 'Array'
. Это объясняет результат, который вы получаете.
Вы не хотите объединять строки, но хранить значения в массиве. Для этого вы можете использовать синтаксис в квадратных скобках для добавления элемента в конец массива:
$date_array[] = $date;
Вторая неправильная строка должна быть:
$aeroports_dates_array[$aeroport] = $date_array;
Опять же, оператор конкатенации строк не помогает при работе с массивами. Здесь $date_array
не добавляется в конце $aeroports_dates_array
(с использованием первой доступной клавиши цифры 1030 *), но связано со значением, сохраненным в переменной $aeroport
. Это обычные назначения для элементов массива с использованием ключа (значение, хранящееся в $date_array
, связано с ключом, хранящимся в $aeroport
).