PHP: Ассоциативные массивы

Теория: Синтаксис

Синтаксически работа с ассоциативными массивами очень похожа на то, как мы работали с обычными массивами. Различия кроются в деталях.

Создание:

<?php

$user = ['name' => 'Vasya', 'married' => true, 'age' => 25];

Общий принцип такой: внутри квадратных скобок через запятую перечисляются пары ключ-значение в формате key => value. Тип значения может быть любым, ключ — обычно, строка.

Если ключей много, то определение можно растянуть на несколько строк:

<?php

$user = [
    'name' => 'Vasya',
    'married' => true,
    'age' => 25
];

Так же, как и с обычным массивом, ассоциативный массив можно создать пустым:

<?php

$user = [];

Синтаксически эта запись совпадает со способом создания обычного (пустого) массива. Возникает вопрос: как интерпретатор различает типы массивов? Хитрость в том, что в PHP индексированных массивов нет, все массивы — ассоциативные. Но если работать с ними так, как мы делали в предыдущем курсе, то он ведёт себя как индексированный массив (почти, различия всё же есть). Подробнее этот вопрос разбирается позже, в одном из уроков.

Извлекаются элементы из ассоциативного массива так:

<?php

$user['name']; // Vasya
$user['age']; // 25

Обращение к несуществующему ключу порождает PHP Notice, что сродни ошибке.

Рекомендуемые программы