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

  • Автор темы Автор темы buracl
  • Дата начала Дата начала

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] => Спектральная обработка
)
.......
В идеале нужно сделать друвовидное меню..может кто подскажет...Заранее спасибо.
 
В правильно заданном вопросе уже содержится большая часть ответа...

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

А далее уже изходя из этого плясать, либо for-циклы, либо while-циклы либо рекурсия...
 
buracl
Судя по тому, что это дерево разделов или чтото подобное, то уровень вложенности тут явно меняется, так что тебе поможет рекурсия и [m]foreach[/m]

P.S. Хотя мне непонятно что эта тема делает в разделе "PHP & Mysql"
 
я просто не знал куда запихнуть..пот и решил....кстате да...это постоянно меняющийся массив.он должен формировать древовидное меню.напишите как именно использовать foreach.чтоб вышло дерево
 
buracl
напишите как именно использовать foreach
Если вы хотите, чтобы за вас написали, то напишите цену, которую вы готовы заплатить.

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