Все ленты — последние статьи

Рекурсия или рекурсивный обход массива.

Что такое рекурсия в принципе, можно ознакомиться в уроке Рекурсивный метод вызова функций., а в этом уроке, я хотел бы представить функцию, которая с помощью этой самой рекурсии выводит все данные на монитор. Причём вложенность любая, а вывод, может быть ограничен лишь памятью сервера и характеристиками железа.

Листинг № 1 — Рекурсивный обход массива.
<?php
// массив Машины
$m = array('Honda','Hammer','BMW','Toyota');

// массив Самолёты
$s = array('AH','TU-144','Boing','СУ');

// массив Танки
$t = array('Тигр','Пантера','Т-34','Аль Халид');

// массив Корабли
$k = array('Кузнецов','Ямато','Ясень','Петропавловск');


// массивы
$th = array($m, $s, $t, $k);
$th1 = array($th, $th, $th, $th);
$th2 = array($th1, $th, $k, $th, $k, $th1, $th1, $th1, $th1);

// представление вложенности (структуры, стек) массива
echo '<pre>';
print_r($th2);
echo '</pre>';

// Функция выполняющая рекурсивный спуск по массиву
function recursion($arr)
{
if(is_array($arr))
{
for($i=0; $i<count($arr); $i++)
{
if(is_array($arr[$i]))
{
recursion($arr[$i]);
}
else
{
echo $arr[$i].'<br>';
}
}
}
else
{
echo $arr.'<br>';
}
}


// Вывод на монитор
recursion($th2);

?>
Вывод на самом деле очень большой, поэтому нет смысла демонстрировать его на этой странице. Для проверки работы, скопируйте весь листинг, как есть, к себе на работающий сервер и просмотрите вывод.