Урок 17. Одномерные и многомерные массивы

В прошлых уроках по php мы изучали массивы с 1 индексом или, иными словами, одним измерением. Массив в таком случае имел очень простую структуру: «ключ => конечное значение». На сегодняшний день разработчикам приходится работать с веб-приложениями, у которых более сложная структура.

Хорошим примером многомерных данных может быть список зарегистрированных «юзеров» сайта. В массиве данных хранится информация не только о логине и пароле, но и другая частная информация о пользователях. Многомерные массивы используются для описания именно таких структур.

У многомерного массива каждый элемент имеет не менее двух индексов. Это достигается за счет того, что в php элементом массива может выступать любой тип данных, и другой массив в том числе. Создаются своего рода «массивы массивов». Для примера рассмотрим многомерный массив пользователей сайта:

<?php
$polzovateli = array (
0 => array (
“login” => “Admin”,
“paswd” => “gh360D12lJ”,
“email” => “adm@somemail.com”,
“profession” => “php programmer”
)
1 => array (
“login” => “Alex”,
“paswd” => “hd240lbDsA0”,
“email” => “alex@somemail.com”,
“profession” => “engineer”
)
2 => array (
“login” => “James”,
“paswd” => “lre54c0Sdv0f”,
“email” => “james@somemail.com”,
“profession” => “dancer”
)
);
?>

Судя из примера выше, многомерные массивы создаются также, как и одномерные, кроме использования в массиве вложенной конструкции array(). Для доступа к элементам многомерного массива индексы записывают сразу после предыдущих в квадратных скобках.  Давайте рассмотрим следующий пример:

echo $polzovateli [1] [“profession”];

Если этот скрипт добавить к примеру массива выше, то мы получим профессию пользователя —  engineer.

В теории количество уровней вложенности может быть любым. Однако, следует заметить, что на стандартном оборудовании PHP может справится не более чем с одной сотней вложенных массивов, что в редких случаях следует учитывать php разработчикам при создании массивов. На самом деле на практике при создании сайтов редко используется более 10 уровней вложенности массивов, поэтому это ограничение практически не наблюдается.

Многомерные массивы делятся на:

1. Индексные (ключами массивов выступают целочисленные значения).
2. Ассоциативные (ключами являются исключительно строковые данные).
3. Смешанные (логично, что здесь ключами могут быть как целые числа, так и строковые величины).

Как видите, в данном уроке в примере рассматривался смешанный многомерный массив.