PHP 5 Многомерные массивы
Ранее в этом учебнике мы описали массивы, которые представляют собой единый список пар "ключ-значение".
Однако иногда требуется хранить значения более чем с одним ключом.
Это может быть сохранено в многомерных массивах.
PHP-многомерные массивы
Многомерный массив представляет собой массив, содержащий один или несколько массивов.
PHP понимает многомерные массивы, которые имеют два, три, четыре, пять или более уровней глубины. Тем не менее, массивы более трех уровней глубоко трудно управлять для большинства людей.
Размерность массива указывает количество индексов, которые необходимо выбрать для элемента.
- Для двумерного массива нужны два индекса для выбора элемента
- Для трехмерного массива необходимо три индекса для выбора элемента
PHP-двумерных массивов
Двумерный массив представляет собой массив массивов (трехмерный массив представляет собой массив массивов массивов).
Во-первых, Взгляните на следующую таблицу:
Name | Stock | Sold |
---|---|---|
Volvo | 22 | 18 |
BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
Мы можем хранить данные из таблицы выше в двухмерный массив, как это:
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
Теперь двумерный массив $Cars содержит четыре массива и имеет два индекса: строку и столбец.
Чтобы получить доступ к элементам массива $Cars мы должны указать на два индекса (строка и столбец):
Пример
<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>
Мы можем также положить for
петлю внутри другой for
петли для того чтобы получить элементы массива $Cars (мы все еще должны указать к двум индексам):
Пример
<?php
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>