![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Здравствуйте, у меня есть массив вот такой.
не подскажите функцию, обхода массива с при помощи которого я бы ещё и мог знать на каком я уровне в данный момент? 1, 36, 70 это первый уровень, для 1-цы 14 это второй, а все дети 14-го это 3-ий Это сообщение отредактировал(а) Serious2008 - 12.7.2012, 10:23 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
baldina,
код конечно делает что-то, но я смотрю на вывод и явно не вижу ничего такого, что мне надо. вот массив мой и что мне выдалось
|
|||
|
||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
он делает что надо
14 - уровень 0, элементы массива уровень 1 Вам выдалось с отступом в один пробел, так что все норм. Вам осталось понять что делает мой код
результат
array_walk_recursive_deep() осуществляет рекурсивный обход, вызывая callback с параметрами key и value для каждого элемента массива. это практически то же самое, что делает встроенная функция array_walk_recursive(). плюс в callback передается параметр $deep, в котором уровень вложенности. в моём примере $deep используется для генерации отступов str_repeat (' ', $deep) Добавлено через 7 минут и 41 секунду вот вам результат обработки надфилем. http://codepad.org/KPlJRYqV такое хотели? |
||||
|
|||||
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
baldina,
вот так точно по лучше. А можешь подсказать ещё одну вещь. Как их этого можно будет сделать меню? Т.е. обвешивать $value, в <li>, а те которые родители в <ul> Т.е. как это для меню. Не подскажите? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
это чуть другая задача. потребуется контролировать проход и вперед и назад, а глубина не играет роли. может быть расскажете полностью, что собираетесь получить в итоге.
Добавлено через 2 минуты и 47 секунд почитайте насчет обхода графа в глубину. у вас частный простейший случай - обход ациклического связного графа, т.е. дерева |
|||
|
||||
| Serious2008 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
baldina,
мне нужно на основе этого массива сделать меню, и эти пункты меню вот так и расположены по такому древу. У меня там содержаться только id но из этих id я могу получить всё что мне надо. Я вот так модифицировал код.
оно как бы хорошо, но есть одна проблема.
Вот оно так сгенирировало
определённо заметно, что не хватает ещё одного <ul> для тех что дети 14-го и как не крутил, не получается :( Это сообщение отредактировал(а) Serious2008 - 12.7.2012, 22:54 |
||||||
|
|||||||
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
baldina,
вот такая модификация кода, решила проблему. Окончательно и полностью. Сейчас буду дальше уже извращать его, спасибо за помощь. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
оно сгенерирует неправильный код: <ul> должен быть внутри <li> а не рядом.
так что надо что-то вроде
учитывая число параметров здесь просится класс |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |