У меня есть ситуация, когда я уже получил и обработал данные SQL в массив и в дерево. Я пытаюсь избежать рекурсии любой ценой, потому что в прошлом она меня кусала.
У меня есть массив элементов с Parent_ID, и я бы хотел получить список всех их детей и дочерних элементов. Он не должен быть почти таким же сложным, как идти другим путем (из массива во вложенное дерево), который я получил без проблем, используя ссылки, но по какой-то причине я застыл в мозгу ...
Любая помощь приветствуется.
У меня есть данные в двух возможных форматах, потому что я уже манипулировал ими. Какой из них лучше для ввода может быть использован. это структура (print_r) двух массивов, которые у меня есть:
Array
(
[202735] => Array
(
[ID] => 202735
[text] => aaafdf
[Parent] =>
)
[202737] => Array
(
[ID] => 202737
[text] => Filho 2
[Parent] => 202735
)
[202733] => Array
(
[ID] => 202733
[text] => Neto 1
[Parent] => 202731
)
[202739] => Array
(
[ID] => 202739
[text] => Neto 2
[Parent] => 202737
)
)
или
Array
(
[0] => Array
(
[ID] => 202735
[text] => aaafdf
[Parent] =>
[children] => Array
(
[0] => Array
(
[ID] => 202737
[text] => Filho 2
[Parent] => 202735
[children] => Array
(
[0] => Array
(
[ID] => 202739
[text] => Neto 2
[Parent] => 202737
)
)
)
)
)
[1] => Array
(
[ID] => 202733
[text] => Neto 1
[Parent] => 202731
)
)
Желаемый вывод в формате:
(родитель первого уровня => все дети и внуки)
array(202731=>array(202735));
array(202735=>array(202737,202739));
или аналогичный ... В идеале я оберну это в функцию, подобную ListChildren ($ InitialParent), и верну все дочерние элементы из такого ... вызов ListChildren (0) или (null) выведет список всех элементов и всех дочерних элементов. ..
(дополнительные элементы массива могут игнорироваться для целей этого упражнения)
OBS: некоторые данные в массиве отсутствуют ... а именно, категория выше 202735, которая будет 202731, но это только потому, что я ограничил данные, которые я скопировал ... в основном, я могу иметь либо плоский массив с родительским идентификаторы или массив «tree» с вложенными дочерними элементами в качестве источника.