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

Последнее обновление: 11.03.2021

Ассоциативные массивы представляют подвид массивов, в которых, в отличие от обычных массивов, в качестве ключа применяются строки.

При создании ассоциативного массива мы явным образом указываем ключ элемента, после которого идет оператор => и значение элемента. Например, создание ассоциативного массива с помощью функции array():

$words = array("red" => "красный", "blue" => "синий", "green" => "зеленый");

Здесь создается массив $words из трех элементов. Например, первый элемент имеет ключ "red", а значение - "красный".

Создание аналогичного массива с помощью квадратных скобок:

$words = ["red" => "красный", "blue" => "синий", "green" => "зеленый"];

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

<?php
$countries = ["Germany" => "Berlin", "France" => "Paris", "Spain" => "Madrid"];
echo $countries["Spain"];	// Madrid
echo "<br />";
$countries["Spain"] = "Barcelona";
echo $countries["Spain"];	// Barcelona
?>

Результат работы скрипта:

Madrid
Barcelona

Для добавления элемента с новым ключом в ассоциативный массив достаточно определить элемент с этим ключом:

$countries = ["Germany" => "Berlin", "France" => "Paris", "Spain" => "Madrid"];
$countries["Italy"] = "Rome";	// определяем новый элемент с ключом "Italy"
echo $countries["Italy"]; // Rome

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

<?php
$countries["Germany"] ="Berlin";
$countries["France"] ="Paris";
$countries["Spain"] ="Madrid";
$countries["Italy"] = "Rome";

echo $countries["Italy"]; // Rome
?>

Для перебора ассоциативного массива применяется цикл foreach:

<?php
$words = ["red" => "красный", "blue" => "синий", "green" => "зеленый"];

foreach($words as $english => $russian)
{
    echo "$english : $russian<br />";
}
?>

Результат перебора массива:

red : красный
blue : синий
green : зеленый

Смешанные массивы

PHP позволяет использовать в одном массиве числовые и строковые индексы:

$data = [1=> "Tom", "id132" => "Sam", 56 => "Bob"];
echo $data[1];	// Tom
echo "<br />";
echo $data["id132"];	// Sam
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850