我有一种情况,我已经获取并操纵SQL数据到数组和树中。我试图不惜一切代价避免递归,因为它已经让我陷入了过去。从父列表中获取儿童列表,而无需在PHP中递归
我有一个Parent_IDs的元素数组,我想能够获得他们的所有子女和子女的列表。它不应该像从另一种方式(从一个数组到一个嵌套树)一样复杂,我没有使用引用问题得到,但由于某种原因,我脑冻结...
任何帮助表示赞赏。
我有两种可能的格式的数据,因为我已经操纵它。哪个最适合输入可以使用。这是两个阵列的结构(的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)会列出所有elem已废除和所有字幕...
OBS(附加的数组元素可以为这个工作的目的被忽略):在阵列中的一些数据丢失...即上述202735的类别,这将是202731,但那仅仅是因为我限制了我复制的数据......基本上,我可以使用父ID或平面数组,或嵌套子数组作为源的“树”数组。
祝贺修复!如果可以,请确保将答案标记为“已接受”,以便其他人可以从您的成功中学习。干杯〜 – 2012-04-04 15:50:21
Thks ...我试过了,但需要等到明天才能做到...明天就做... – RVN 2012-04-04 19:24:48