Объяснить как работает Aссоциативный массив

Рейтинг: -2Ответов: 1Опубликовано: 13.03.2023

Объяснить как работает эта часть кода.

$result[$item['country']][] = $item['city'];// не понимаю зачем тут []

    foreach ($items as $item) {
        $result[$item['country']][] = $item['city'];
    }

Пример Aссоциативного массива

$cites = [
        [
            'country' => 'Россия',
            'city' =>    'Москва',
        ],
        [
            'country' => 'Беларусь',
            'city' =>    'Минск',
        ],
        [
            'country' => 'Россия',
            'city' =>    'Питер',
        ],
        [
            'country' => 'Россия',
            'city' =>    'Владивосток',
        ],
        [
            'country' => 'Украина',
            'city' =>    'Львов',
        ],
        [
            'country' => 'Беларусь',
            'city' =>    'Могилев',
        ],
        [
            'country' => 'Украина',
            'city' =>    'Киев',
        ],
    ];

Ответы

▲ 0Принят

Здесь в конечном итоге получится ассоциативный массив, где ключом является название страны, а значением — массив городов этой страны

Предположим, вы на самой первой итерации цикла и рассматриваете элемент ['country' => 'Россия', 'city' => 'Москва'].

Строка

$result[$item['country']][] = $item['city'];

будет означать

$result['Россия'][] = 'Москва';

Если в начале $result не имеет никакого значения, то переменная станет ассоциативным массивом с единственным элементом. Ключом будет 'Россия'.

Значение в начале у элемента отсутствует, но, поскольку мы применяем к нему оператор [], который означает добавить в самый конец массива, то значением станет пустой массив, в который будет добавлен элемент 'Москва'.

$result = [
  'Россия' => [ 'Москва' ]
];

После завершения цикла у нас получится ассоциативный массив со странами и городами.