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

Рассмотрим следующий массив:

<?php $arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс']; ?>

Чтобы обратиться к нужному элементу этого массива, мы должны написать в квадратных скобках ключ этого элемента. Как вы знаете, в массивах PHP сам определяет ключи для элементов - это их порядковые номера. Но иногда это может оказаться неудобным: например, мы хотим вывести на экран название первого дня недели, а должны писать в квадратных скобках цифру 0.

Логичнее и удобнее было бы все-таки для первого дня недели писать ключ 1, как привыкли мы в жизни. Для этого используются ассоциативные массивы. Они имеют следующий синтаксис: имя ключа, затем идет стрелка =>, а потом значение. Давайте укажем явные ключи для нашего массива дней:

<?php $arr = [1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс']; ?>

После добавления наших ключей обратиться к понедельнику можно уже по ключу 1, а не 0. Сделаем это:

<?php echo $arr[1]; // выведет 'пн' ?>

Создайте массив с ключами 1, 2 и 3 и значениями 'a', 'b' и 'c'. Выведите на экран все его элементы.

Хитрость с ключами

Не очень удобно расставлять ключи всем элементам для того, чтобы нумерация началась не с нуля, а с единицы. К счастью, на самом деле достаточно первому элементу поставить ключ 1 и дальше PHP сам автоматически расставит ключи по порядку.

Давайте попробуем:

<?php $arr = [1 => 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс']; echo $arr[1]; // выведет 'пн' echo $arr[2]; // выведет 'вт' echo $arr[3]; // выведет 'ср' ?>

Составьте массив с названиями месяцев. Пусть в нем январь имеет ключ 1.

Строковые ключи

Ключи не обязательно должны быть числами, они могут быть и строками. Сделаем, к примеру, массив, в котором ключами будут имена работников, а элементами - их зарплаты:

<?php $arr = ['user1' => 200, 'user2' => 300, 'user3' => 400]; ?>

Узнаем зарплату первого работника:

<?php $arr = ['user1' => 200, 'user2' => 300, 'user3' => 400]; echo $arr['user1']; // выведет 200 ?>

Создайте массив $user с ключами 'name', 'surname', 'patronymic' и какими-то произвольными значениями. Выведите на экран фамилию, имя и отчество через пробел.

Создайте массив $date с ключами 'year', 'month' и 'day' и значениями, соответствующими текущему дню. Выведите созданную дату на экран в формате год-месяц-день.