Перейти к основному содержимому

PHP — Многомерные массивы

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

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


PHP — Двумерные массивы

Двумерный массив — это просто массив, элементы которого являются массивами. Добавьте ещё один слой, чтобы внутренние массивы содержали собственные массивы, и вы получите трёхмерный массив.

Такая форма подходит для данных, представленных строками и столбцами. Вот как это выглядит:

Доступ к элементам двумерного массива

Чтобы прочитать значение из $cars, нужны два индекса: первый для строки таблицы, второй для столбца:

Prompt
Напишите PHP-скрипт, который создаёт двумерный массив марок автомобилей с количеством в наличии и проданных (Volvo 22/18, BMW 15/13, Saab 5/2, Land Rover 17/15), а затем выводит каждую строку, показывая название марки, количество в наличии и количество проданных.
Вывод: PHP-скрипт

Определение двумерного массива

Каждый внутренний массив — это одна строка таблицы с маркой, количеством на складе и количеством проданных автомобилей:

index.php
<?php
$cars = array (
  array("Volvo", 22, 18),
  array("BMW", 15, 13),
  array("Saab", 5, 2),
  array("Land Rover", 17, 15)
);
?>

PHP — Перебор многомерных массивов

Для прохода по многомерному массиву нужен цикл for или foreach.

Число измерений показывает, сколько индексов нужно, чтобы добраться до одного элемента:

  • Два измерения — два индекса
  • Три измерения — три индекса

Перебор вложенными циклами for

Цикл for, вложенный в другой такой же цикл, обходит каждый элемент $cars. Внешний проходит по строкам таблицы, внутренний по столбцам, и к каждому элементу по-прежнему обращаются с помощью обоих индексов:

Prompt
Напишите PHP-скрипт, который создаёт двумерный массив марок автомобилей с количеством в наличии и проданных (Volvo 22/18, BMW 15/13, Saab 5/2, Land Rover 17/15), а затем с помощью вложенных циклов for выводит номер каждой строки и её элементы в HTML-списке без нумерации.
Вывод: PHP-скрипт

Перебор вложенными циклами foreach

Вложенные циклы foreach справляются с той же задачей без номеров индексов. На этот раз значения выводятся в виде HTML-таблицы:

Prompt
Напишите PHP-скрипт, который создаёт двумерный массив марок автомобилей с количеством в наличии и проданных (Volvo 22/18, BMW 15/13, Saab 5/2, Land Rover 17/15), а затем с помощью вложенных циклов foreach выводит данные в HTML-таблице с заголовками «Марка», «В наличии» и «Продано».
Вывод: PHP-скрипт