Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Категории и подкатегории [5]
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
_tango пишет:
Вот окончательный вариант
В принципе решение неплохое но его можно универсализировать для любого уровня вложенности - сначала выбираете все корневые элементы и кладте их в хеш-массив - далее для каждого из них просматриваете дочерние элементы и если такове имеются то для значенем ключа данного элеента становится хеш-массив его дочерних элементов (Здесь также имя элемента - это ключ хеш-массива а не его значение) - а если дочернх элементов нет то устанавливаете null - таким образом поучаете полное дерево
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
_tango
Отправлено: 12 Апреля, 2010 - 14:10:28
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2010 Откуда: Казахстан
Помог: 0 раз(а)
Извините пожалуйста, но не могли бы вы привести в пример код, ну например для трех уровней вложенности? Что бы можно было потом над ним помедитировать
Очень уж тяжело, пока что, дается эта околоматематическая акробатика
JustUserR
Отправлено: 13 Апреля, 2010 - 16:38:11
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
_tango Вот вам пример кода который будет упорядочивать рекурсивно массив и превращать его в дерево по идентификаторам родительских элементов - при этом он работает с произвольным уровнем вложенности
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
_tango
Отправлено: 14 Апреля, 2010 - 16:02:47
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2010 Откуда: Казахстан
Помог: 0 раз(а)
Большое спасибо JustUserR
JustUserR
Отправлено: 15 Апреля, 2010 - 13:23:13
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
_tango пишет:
Большое спасибо JustUserR
Используйте на здоровье Обратите внимание что второй аргумент приведенной функции является ссылкой
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Ghost
Отправлено: 18 Января, 2011 - 19:41:35
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Здравствуйте.
Хотел бы возобновить старую тему.
У меня аналогичная "загвоздка", никак не могу найти решение.
Нужно рекурсией собрать массив из id-значений для вывода комментариев.
Раскомментировать echo $key; - выводятся значения в порядке в каком нужно (несколько уровней вложенности), но дело в том, что в БД хранится не только текст, но и другие данные, которые я затем через foreach($dt ... ) хотел бы вывести из БД в нужном порядке. Простое присваивание значения $key массиву ничего не даёт - заносятся только значения первого уровня.
Подскажите, пожалуйста, возможно ли собрать в массив все идентификаторы в нужном порядке? Как это можно сделать?
Кстати, выдаётся Notice: Undefined offset: ... in ... на
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.