Ассоциативный массив PHP
Ассоциативные массивы в PHP - это те массивы, которые позволяют хранить пары вида ключ - значение. То есть с их помощью можно задавать свои ключи.
Синтаксис такой: ключ
, затем идет
стрелка =>
, а потом значение
.
Давайте для примера сделаем массив дней недели.
С помощью ассоциативного массива можно сделать
так, чтобы Monday
имел ключ 1
,
а не ноль:
<?php
$a = [1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 7 => 'Sunday'];
echo $a[1]; // выведет 'Monday'
?>
Ключи не обязательно должны быть числами, они могут быть и строками. Сделаем массив, в котором ключами будут имена работников, а элементами - их зарплаты:
<?php
// Массив работников:
$a = ['John' => 200, 'Mary' => 300, 'Nick' => 400];
?>
Узнаем зарплату Mary
:
<?php
$a = ['John' => 200, 'Mary' => 300, 'Nick' => 400];
echo $a['Mary']; // выведет 300
?>
Массивы, у которых явно указаны ключи, называются ассоциативными.
Хитрость с ключами
Когда мы делали ассоциативный массив дней недели, нам приходилось расставлять все ключи вручную.
На самом деле нет необходимости расставлять
ключи всем элементам - достаточно только
первому элементу поставить ключ 1
.
Если у второго элемента не будет ключа, PHP поставит его автоматически, причем следующий по порядку.
А следующим номером будет как раз число
2
, так как предыдущий элемент имел
ключ 1
(неважно, что мы сами его поставили,
а не PHP автоматически).
Давайте поправим наш массив:
<?php
// Укажем ключи в явном виде:
$a = [1 => 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
echo $a[3]; // выведет 'Wednesday'
?>
Хитрость достаточно полезная, используйте ее.