Массивы — это сложные переменные, которые позволяют нам хранить группу значений под одним именем переменной. Предположим, вы хотите сохранить цвета в своем PHP-скрипте. Сохранение цветов по одному в переменной может выглядеть примерно так:
<?php
$color1 = "Red";
$color2 = "Green";
$color3 = "Blue";
?>
Но что, если вы хотите сохранить названия штатов или городов страны в переменных, и на этот раз их не три, а несколько сотен. Хранить название каждого города в отдельной переменной — это довольно сложно. Для этого используются массивы.
Типы массивов в PHP
Вы можете создавать массивы трех типов:
- Indexed array — массив с числовым ключом;
- Associative array — массив, в котором каждый ключ имеет собственное определенное значение;
- Multidimensional array — массив, содержащий один или несколько массивов внутри себя.
Индексированный массив
В индексированном или числовом массиве каждый элемент массива хранится с числовым индексом. В следующих примерах показаны два способа создания индексированного массива, самый простой способ:
<?php
// Определяем индексированный массив
$colors = array("Red", "Green", "Blue");
?>
В индексированном или числовом массиве индексы назначаются автоматически и начинаются с 0, а значения могут быть любого типа данных.
Это эквивалентно следующему примеру, в котором индексы назначаются вручную:
<?php
$colors[0] = "Red";
$colors[1] = "Green";
$colors[2] = "Blue";
?>
Ассоциативный массив
В ассоциативном массиве ключи, присвоенные значениям, могут быть произвольными и определяемыми пользователем строками. В следующем примере в массиве используются ключи вместо номеров индексов:
<?php
// Определяем ассоциативный массив
$ages = array("Peter"=>22, "Clark"=>32, "John"=>28);
?>
Следующий пример эквивалентен предыдущему, но показывает другой способ создания ассоциативных массивов:
<?php
$ages["Peter"] = "22";
$ages["Clark"] = "32";
$ages["John"] = "28";
?>
Многомерный массив
Многомерный массив — это массив, в котором каждый элемент также может быть массивом и каждый элемент во вложенном массиве может быть массивом или дополнительно содержать массив внутри себя и так далее. Пример многомерного массива будет выглядеть примерно так:
<?php
// Определяем многомерный массив
$contacts = array(
array(
"name" => "Peter Parker",
"email" => "peterparker@mail.com",
),
array(
"name" => "Clark Kent",
"email" => "clarkkent@mail.com",
),
array(
"name" => "Harry Potter",
"email" => "harrypotter@mail.com",
)
);
// Доступ к вложенному значению
echo "Peter Parker's Email-id is: " . $contacts[0]["email"];
?>
Печать структуры и значений массива
Вы можете увидеть структуру и значения любого массива, используя один из двух операторов — var_dump()
или print_r()
. Однако оператор print_r()
дает несколько меньше информации. Рассмотрим следующий пример:
<?php
// Определяем массив
$cities = array("London", "Paris", "New York");
// Определяем массив городов
print_r($cities);
// Выводит на экран: Array ( [0] => London [1] => Paris [2] => New York )
?>
Этот вывод показывает ключ и значение для каждого элемента в массиве. Чтобы получить дополнительную информацию, используйте следующую конструкцию:
<?php
// Определяем массив
$cities = array("London", "Paris", "New York");
// Определяем массив городов
var_dump($cities);
// Выводит на экран: array(3) { [0]=> string(6) "London" [1]=> string(5) "Paris" [2]=> string(8) "New York" }
?>
Эти выходные данные показывают тип данных каждого элемента, например строку из 6 символов, в дополнение к ключу и значению. В следующей главе вы узнаете, как сортировать элементы массива.
Как перебирать значения массива см. Руководство по циклам в PHP.