В PHP, у меня есть структура вроде этого:Конкретный алгоритм рекурсивно через структуру дерева в PHP
Array
(
[0] = Array
(
'id' => 1,
'parent' => 0
)
[1] = Array
(
'id' => 2,
'parent' => 1
)
[2] = Array
(
'id' => 3,
'parent' => 1
)
[3] = Array
(
'id' => 4,
'parent' => 2
)
)
id
представляет собой уникальное целое число, а parent
является ссылкой на другой элемент id
-х. Если parent
равно 0, то у него нет родителя. Структура дерева выглядит так:
1 -> 2 -> 4
-> 3
(я надеюсь, что это понятно!). Я пытался определить алгоритм, который будет генерировать вложенный массив или аналогичный вывод, который предоставляет иерархию дерева, чтобы я мог работать с ним; например, один такой выход будет: tree = ['1' => ['2' => ['4'], '3']]]
. Алгоритм может поддерживать массив любой произвольной глубины; но я ограничиваю это тем, что у ребенка не может быть более одного родителя.
Извинения за нестандартный синтаксис, я надеюсь, что он эффективно сообщает то, что я пытаюсь достичь, что является поиском глубины в начале, я думаю - однако реализации, с которыми я столкнулся, слишком сухие для понимания поэтому я был бы признателен за помощь в этом.
Возможный дубликат [Как преобразовать серию отношений родитель-потомок в иерархическое дерево?] (Http://stackoverflow.com/questions/2915748/how-can-i-convert-a-series-of -parent-child-relations-in-a-hierarchical-tre) – jeroen