Xpoint
   [напомнить пароль]

Вывод дерева с большим уровнем вложенности

Метки: [без меток]
2011-09-04 20:28:20 [обр] Mark Leidman[досье]

Столкнулся с такой проблемой. В массиве есть дерево, как его получить из двумерного массива хорошо описано тут Построение списка (дерева) из двухмерного массива

Дальше идет вывод этого дерево (в моем случае это комментарии к статье). При выводе есть итерация. В случае если дискуссия горячая, то уровней вложенности комментариев может быть до 60 и больше. Учитываю то, что до вывода комментариев есть тоже определенный уровень вложенности функций PHP, сталкиваюсь в отдельных случаях с ограничением PHP на 100 уровней вложенности функций.

Есть ли решения, как избежать такой проблемы?

спустя 1 час 45 минут [обр] Филипп Ткачев(20/112)[досье]

В мане сказано:

It is possible to call recursive functions in PHP. However avoid recursive function/method calls with over 100-200 recursion levels as it can smash the stack and cause a termination of the current script.

 
Основная проблема PHP в том, что это интерпретируемый язык программирования и поэтому глубина стека вызовов у него весьма ограничена.

  1. Ограничить глубину вложенности комментариев. Например 3-5 уровнями. Этого более чем достаточно.
  1. Включив расширение xdebug, капнуть внутрь php.ini немного смазки:
max_input_nesting_level = 200
xdebug.max_nesting_level = 200
спустя 5 дней [обр] Jared(3/26)[досье]
Не используйте рекурсию ;)
Рекурсия для такой задачи вообще избыточна.
Powered by POEM™ Engine Copyright © 2002-2005