PHP скрипты

MySQL

Apache

phpMyADmin

8.14: Многомерные массивы

Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Многомерные массивы в PHP

До этого момента в качестве элементов массива мы использовали только числа и строки. На самом деле элементом может быть все что угодно, даже другие массивы. Выглядит это следующим образом:

$lang = array ("Петров"=> array ("Английский", "Испанский", "Немецкий"),
"Иванов"=> array ("Французский", "Итальянский"),
"Сидоров"=> array ("Немецкий"));

Это пример инициализации двумерного массива, где в качестве элементов выступают обычные (одномерные) массивы. Он содержит информацию о знании иностранных языков. На самом деле мы можем еще более усложнить структуру, если в качестве элементов внутреннего массива возьмем еще один массив, тогда это уже будет трехмерный массив. При желании так можно продолжать очень долго, но на практике обычно на этом останавливаются.

Обращение к элементам внутреннего массива происходит следующим образом:

$lang["Петров"][0];

В данном случае мы обращаемся к первому элементу массива, который, в свою очередь, является первым элементом массива $lang, то есть к строке Английский.

Обход многомерных массивов можно также производить с помощью конструкции fоreach. При этом мы будем иметь дело с вложенными циклами (листинг 8.22).

Листинг 8.22. Вывод многомерных массивов.

‹html›
‹head›
‹title› Вывод многомерных массивов ‹/title›
‹/head›
‹body›
‹?php
$lang = array ("Петров" => array ("Английский", "Испанский", "Немецкий"), "Иванов" => array ("Французский", "Итальянский"), "Сидоров" => array ("Немецкий"));
foreach ($lang as $value)
{
echo $key . "‹br›";
foreach ($value as $sub_key => $sub_value)
{
   echo $sub_key . " " . $sub_value , "‹br›"; // вывод элемента
}
echo "‹br›";
}
?›
‹/body›
‹/html›

Результат выполнения этой программы смотрите ниже на рис.

вывод многомерных массивов

Итак, во внешнем цикле переменная $кеу будет принимать значения индексов внешнего массива, то есть строки Петров, Иванов, Сидоров, а переменная $value - внутренние массивы. Переменные $sub_key и $sub_value работают уже непосредственно с ключами и значениями внутренних массивов.

Поделиться с друзьями