Многомерные массивы PHP
Многомерные массивы — это такие массивы, которые хранят другие массивы по каждому индексу в качестве элемента. Другими словами, многомерные массивы можно именовать как массив массивов. Как следует из названия, каждый элемент в этом массиве может быть массивом, и они в свою очередь также могут содержать другие подмассивы внутри себя.
Примечание: Размерность массива определяется количеством индексов, необходимых для выбора элемента:
- В двумерном массиве для получения доступа к элементам нужно указать два индекса.
- В трёхмерном массиве для получения доступа к элементам нужно указать три индекса.
Создание многомерных массивов
Многомерный массив можно рассматривать как таблицу, где каждый элемент в родительском массиве представляет строку таблицы, а элементы каждого дочернего массива представляют столбцы этой строки.
name | mob | |
---|---|---|
Андрей | 5689741523 | andre@mail.com |
Иван | 2584369721 | ivan@mail.com |
Тома | 9875147536 | toma@mail.com |
Ира | 1775147536 | irina@mail.com |
Сохраним данные из таблицы в двумерном массиве:
array("name" => "Андрей","mob" => "5689741523","email" => "andre@mail.com"),
array("name" => "Иван","mob" => "2584369721","email" => "ivan@mail.com"),
array("name" => "Тома","mob" => "9875147536","email" => "toma@mail.com"),
array("name" => "Ира","mob" => "1775147536","email" => "irina@mail.com")
);
Теперь двумерный массив $favorites содержит четыре массива и имеет два индекса: строку и столбец.
Доступ к элементам многомерного массива
Чтобы понять, как получить доступ к элементам многомерного массива, продолжим использовать аналогию с таблицами. Для получения доступа к элементу многомерного массива нужно сначала указать строку массива, к которой мы хотим получить доступ. Во-вторых, нужно указать столбец в этой строке. Таким образом для доступа к элементу мы указываем имя массива, а затем нужную строку и столбец массива, каждый из которых заключен в квадратные скобки ([]).
Например, чтобы получить доступ к телефону Ивана в нашем массиве $favorites, мы должны указать на два индекса (строку и столбец):
Пример
Попробуй сам »<?php
$favorites = array();
$favorites[0] = array("name" => "Андрей","mob" => "5689741523","email" => "andre@mail.com");
$favorites[1] = array("name" => "Иван","mob" => "2584369721","email" => "ivan@mail.com");
$favorites[2] = array("name" => "Тома","mob" => "9875147536","email" => "toma@mail.com");
$favorites[3] = array("name" => "Ира","mob" => "1775147536","email" => "irina@mail.com");
echo $favorites[1]["mob"];
?>
Результат выполнения кода:
Этот же пример можно переписать так:
array("Андрей",5689741523,"andre@mail.com"),
array("Иван",2584369721,"ivan@mail.com"),
array("Тома",9875147536,"toma@mail.com"),
array("Ира",1775147536,"irina@mail.com")
);
echo $favorites[1][1]; // 2584369721
Если в первом случае для доступа к элементу мы указали номер строки и ключ столбца, то здесь — номер строки и номер столбца.
Получить доступ к элементам массива можно также поместив цикл for
внутрь другого цикла for
. При этом также нужно указать два индекса:
Пример
Попробуй сам »<?php
$favorites = array (
array("Андрей",5689741523,"andre@mail.com"),
array("Иван",2584369721,"ivan@mail.com"),
array("Тома",9875147536,"toma@mail.com"),
array("Ира",1775147536,"irina@mail.com")
);
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Строка № $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$favorites[$row][$col]."</li>";
}
echo "</ul>";
}
?>
Желаете больше задачек? Они у нас есть) Реши задачку по массивам.