Ассоциативный массив PHP
Ассоциативные массивы в PHP — это те массивы, которые позволяют хранить пары вида ключ — значение. То есть с их помощью можно задавать свои ключи.
Синтаксис такой: ключ , затем идет стрелка => , а потом значение .
Давайте для примера сделаем массив дней недели. С помощью ассоциативного массива можно сделать так, чтобы Monday имел ключ 1 , а не ноль:
‘Monday’, 2 => ‘Tuesday’, 3 => ‘Wednesday’, 4 => ‘Thursday’, 5 => ‘Friday’, 6 => ‘Saturday’, 7 => ‘Sunday’]; echo $a[1]; // выведет ‘Monday’ ?>?php>
Ключи не обязательно должны быть числами, они могут быть и строками. Сделаем массив, в котором ключами будут имена работников, а элементами — их зарплаты:
200, ‘Mary’ => 300, ‘Nick’ => 400]; ?>?php>
Узнаем зарплату Mary :
200, ‘Mary’ => 300, ‘Nick’ => 400]; echo $a[‘Mary’]; // выведет 300 ?>?php>
Массивы, у которых явно указаны ключи, называются ассоциативными.
Хитрость с ключами
Когда мы делали ассоциативный массив дней недели, нам приходилось расставлять все ключи вручную.
На самом деле нет необходимости расставлять ключи всем элементам — достаточно только первому элементу поставить ключ 1 .
Если у второго элемента не будет ключа, PHP поставит его автоматически, причем следующий по порядку.
А следующим номером будет как раз число 2 , так как предыдущий элемент имел ключ 1 (неважно, что мы сами его поставили, а не PHP автоматически).
Давайте поправим наш массив:
‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’, ‘Sunday’]; echo $a[3]; // выведет ‘Wednesday’ ?>?php>
Хитрость достаточно полезная, используйте ее.
Ассоциативные массивы в PHP
Чтобы обратиться к нужному элементу этого массива, мы должны написать в квадратных скобках ключ этого элемента. Как вы знаете, в массивах PHP сам определяет ключи для элементов — это их порядковые номера. Но иногда это может оказаться неудобным: например, мы хотим вывести на экран название первого дня недели, а должны писать в квадратных скобках цифру 0 .
Логичнее и удобнее было бы все-таки для первого дня недели писать ключ 1 , как привыкли мы в жизни. Для этого используются массивы. Они имеют следующий синтаксис: имя ключа, затем идет стрелка => , а потом значение. Давайте укажем явные ключи для нашего массива дней:
‘пн’, 2 => ‘вт’, 3 => ‘ср’, 4 => ‘чт’, 5 => ‘пт’, 6 => ‘сб’, 7 => ‘вс’]; ?>?php>
После добавления наших ключей обратиться к понедельнику можно уже по ключу 1 , а не 0 . Сделаем это:
Создайте массив с ключами 1 , 2 и 3 и значениями ‘a’ , ‘b’ и ‘c’ . Выведите на экран все его элементы.
PHP: Ассоциативные массивы
Ассоциативный массив — массив, у которого каждый элемент состоит из пары ключ => значение . Ключ — строка, используемая вместо числового индекса, для доступа к значению элемента.
Создание ассоциативного массива
Ассоциативный массив можно создать как с помощью конструктора array() , так и при помощи короткого синтаксиса — квадратных скобок. Для указания элементов используется формат ключ => значение :
$my_array = array('foo' => 'bar', 'bar' => 'foo'); $my_array = ['foo' => 'bar', 'bar' => 'foo'];
С отступами, которые вы видите в этом примере, легче добавлять элементы в массив и легче отслеживать, какому ключу какое соответствует значение, чем когда они записаны в одну строку.
Примечание: обратите внимание, что в отличие от числовых индексов, ключи заключены в апострофы, так как они являются строками.
Для доступа к значению элемента в ассоциативных массивах используются только строковые ключи, по индексу значение получить нельзя:
$my_array = ['foo' => 'bar', 'bar' => 'foo']; echo $my_array['foo']; // bar echo $my_array[0]; // будет ошибка, так как элемента с индексом 0 в массиве нет
Смешанные массивы
Обратите вниманием, в PHP массивы могут содержать ключи типов int и string одновременно, т.е. PHP не делает различия между индексированными и ассоциативными массивами:
$my_array = ['Солнце' => 'яркое', 'колесо' => 'круглое', 10 => 'дом', -5 => 290];
Массивы с двумя типами ключей называют смешанными.
С этой темой смотрят:
- Числовые массивы
- Добавление и удаление элементов массива
- Перебор элементов массива
- Многомерные массивы
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru | razumnikum.ru
Что такое ассоциативный массив в php
Ассоциативные массивы представляют подвид массивов, в которых, в отличие от обычных массивов, в качестве ключа применяются строки.
При создании ассоциативного массива мы явным образом указываем ключ элемента, после которого идет оператор => и значение элемента. Например, создание ассоциативного массива с помощью функции array() :
$words = array("red" => "красный", "blue" => "синий", "green" => "зеленый");
Здесь создается массив $words из трех элементов. Например, первый элемент имеет ключ «red», а значение — «красный».
Создание аналогичного массива с помощью квадратных скобок:
$words = ["red" => "красный", "blue" => "синий", "green" => "зеленый"];
Используя ключ, также как и в обычных массивах, можно обратиться к элементу массива, например, получить или изменить его значение:
"Berlin", "France" => "Paris", "Spain" => "Madrid"]; echo $countries["Spain"]; // Madrid echo "
"; $countries["Spain"] = "Barcelona"; echo $countries["Spain"]; // Barcelona ?>
Результат работы скрипта:
Madrid Barcelona
Для добавления элемента с новым ключом в ассоциативный массив достаточно определить элемент с этим ключом:
$countries = ["Germany" => "Berlin", "France" => "Paris", "Spain" => "Madrid"]; $countries["Italy"] = "Rome"; // определяем новый элемент с ключом "Italy" echo $countries["Italy"]; // Rome
Также необязательно инициализировать переменную массива при ее определении. Можно, как с обычными массивами, добавлять элементы по ходу:
Для перебора ассоциативного массива применяется цикл foreach :
"красный", "blue" => "синий", "green" => "зеленый"]; foreach($words as $english => $russian) < echo "$english : $russian
"; > ?>
Результат перебора массива:
red : красный blue : синий green : зеленый
Смешанные массивы
PHP позволяет использовать в одном массиве числовые и строковые индексы:
$data = [1=> "Tom", "id132" => "Sam", 56 => "Bob"]; echo $data[1]; // Tom echo "
"; echo $data["id132"]; // Sam
