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

buracl

Новичок
Обход многомерного массива

Здравствуйте.у меня проблема.не могу понять.как можно обойти такой массив
Array
(
[Root] => Array
(
[DisplayName] => Отчеты
[SubNodes] => Array
(
[I_0] => Array
(
[Name] => I0
[DisplayName] => Примеры обработки данных
[SubNodes] => Array
(
[I_0] => Array
(
[Name] => I01
[DisplayName] => Примеры предобработки данных
[SubNodes] => Array
(
[I_0] => Array
(
[Name] => I02
[DisplayName] => Парциальная предобработка
[SubNodes] => Array
(
[I_0] => Array
(
[Name] => I5
[DisplayName] => Исходные данные
)

[I_1] => Array
(
[Name] => I6
[DisplayName] => Восстановление пропущенных данных
)

[I_2] => Array
(
[Name] => I7
[DisplayName] => Удаление аномалий
)

[I_3] => Array
(
[Name] => I8
[DisplayName] => Спектральная обработка
)
.......
В идеале нужно сделать друвовидное меню..может кто подскажет...Заранее спасибо.
 

Vladson

Сильнобухер
В правильно заданном вопросе уже содержится большая часть ответа...

Для начала надо решить:
- постоянное ли количество элементов
- постоянный ли уровень вложенности

А далее уже изходя из этого плясать, либо for-циклы, либо while-циклы либо рекурсия...
 

phprus

Moderator
Команда форума
buracl
Судя по тому, что это дерево разделов или чтото подобное, то уровень вложенности тут явно меняется, так что тебе поможет рекурсия и [m]foreach[/m]

P.S. Хотя мне непонятно что эта тема делает в разделе "PHP & Mysql"
 

buracl

Новичок
я просто не знал куда запихнуть..пот и решил....кстате да...это постоянно меняющийся массив.он должен формировать древовидное меню.напишите как именно использовать foreach.чтоб вышло дерево
 

phprus

Moderator
Команда форума
buracl
напишите как именно использовать foreach
Если вы хотите, чтобы за вас написали, то напишите цену, которую вы готовы заплатить.

А вообщето задача элементарная и решается примерно так:
Код:
обход(узел) {
  вывели узел;
  если есть SubNodes то для каждого SubNodes[i]  вызываем обход(SubNodes[i])
}
 

buracl

Новичок
спасибо за помощь....все сделал....решение было таким простым.
 
Сверху