Доступ к элементам массива в PHP
Способ чтения элемента зависит от вида массива: для индексированного массива нужен номер индекса элемента, а для ассоциативного — имя его ключа.
Пример
Укажите номер индекса в квадратных скобках, чтобы прочитать этот элемент:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo $cars[2];
?>
Доступ к элементу ассоциативного массива
Примечание: Счёт начинается с 0, поэтому индекс 0 — это первый элемент. Именно поэтому $cars[2] выше вернул третий автомобиль.
Ассоциативные массивы работают так же, только в скобках указывается имя ключа:
Пример
Прочитайте элемент year, указав его ключ:
Вывод: PHP-скрипт
<?php
$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);
echo $cars["year"];
?>
Двойные или одинарные кавычки
Имена ключей в скобках можно записывать в любых кавычках, двойных или одинарных. Обе строки кода ниже читают один и тот же элемент:
Пример
Вывод: PHP-скрипт
<?php
$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);
echo $cars["model"];
echo $cars['model'];
?>
Вызов элемента-функции
Поскольку элемент может иметь любой тип данных, он может быть и функцией.
Здесь элемент хранит имя функции. Чтобы вызвать её, укажите номер индекса, а затем добавьте круглые скобки ():
Пример
Вызовите функцию, хранящуюся по индексу 2:
Вывод: PHP-скрипт
<?php
function myFunction() {
echo "Я пришёл из функции!";
}
$myArr = array("Volvo", 15, "myFunction");
$myArr[2]();
?>
Пример
В ассоциативном массиве место индекса занимает имя ключа:
Вывод: PHP-скрипт
<?php
function myFunction() {
echo "Я пришёл из функции!";
}
$myArr = array("car" => "Volvo", "age" => 15, "message" => "myFunction");
$myArr["message"]();
?>
Перебор ассоциативного массива в цикле
Чтобы перебрать ассоциативный массив и вывести все его значения, используйте цикл foreach:
Пример
Выведите каждый ключ вместе с его значением:
Вывод: PHP-скрипт
<?php
$car = array("brand"=>"Ford", "model"=>"Mustang", "year"=>1964);
foreach ($car as $x => $y) {
echo "$x: $y <br>";
}
?>
Перебор индексированного массива в цикле
С индексированными массивами foreach тоже работает. Он проходит по элементам по очереди, поэтому вы можете вывести все значения, не обращаясь к номерам индексов:
Пример
Выведите каждый автомобиль на отдельной строке:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
foreach ($cars as $x) {
echo "$x <br>";
}
?>