Tree
in package
FinalYes
Рендер древовидной иерархии в псевдографике (`├──`, `└──`, `│`).
Дерево задаётся вложенным ассоциативным массивом: ключ — подпись узла, значение — массив дочерних узлов той же формы (пустой массив — лист). Обход итеративный (явный стек кадров), поэтому глубина вложенности ограничена только памятью, а не стеком вызовов PHP.
Table of Contents
Methods
- lines() : Generator<int, string>
- Построчный обход дерева без материализации результата.
- render() : string
- Отрисовать дерево.
- renderTo() : void
- Отрисовать дерево прямо в приёмник вывода, не накапливая результат.
Methods
lines()
Построчный обход дерева без материализации результата.
public
lines(array<string|int, mixed> $tree) : Generator<int, string>
Позволяет печатать деревья любого объёма при постоянном расходе памяти: в куче живёт только текущая строка и стек кадров по глубине обхода.
Parameters
- $tree : array<string|int, mixed>
-
вложенная карта узлов
Return values
Generator<int, string> —строки дерева без перевода строки
render()
Отрисовать дерево.
public
render(array<string|int, mixed> $tree) : string
Parameters
- $tree : array<string|int, mixed>
-
вложенная карта узлов
Return values
string —многострочное представление дерева
renderTo()
Отрисовать дерево прямо в приёмник вывода, не накапливая результат.
public
renderTo(Writer $writer, array<string|int, mixed> $tree) : void
Parameters
- $writer : Writer
-
приёмник вывода
- $tree : array<string|int, mixed>
-
вложенная карта узлов