我有一大堆的名字 - parentname对,我想转成少数heirarchical树形结构成为可能.例如,这些可能是配对:
Child : Parent
H : G
F : G
G : D
E : D
A : E
B : C
C : E
D : NULL
Run Code Online (Sandbox Code Playgroud)
需要转化为(a)层次结构树:
D
??? E
? ??? A
? ? ??? B
? ??? C
??? G
??? F
??? H
Run Code Online (Sandbox Code Playgroud)
我想要的最终结果是一组嵌套的<ul>元素,每个元素都<li>包含孩子的名字.
有在配对没有不一致(孩子是它自己的父母,父母是孩子的孩子,等等),所以一堆优化大概可以做.
在PHP中,我如何从包含child => parent对的数组转到一组嵌套<ul>s?
我有一种感觉,涉及到递归,但我还没有完全清醒地思考它.
我很惊讶没有在SO(或互联网上的其他地方)找到答案.它涉及一个嵌套的缩进列表,我想根据缩进的级别将其转换为多维数组.
举个例子,这里有一些示例输入:
Home
Products
Product 1
Product 1 Images
Product 2
Product 2 Images
Where to Buy
About Us
Meet the Team
Careers
Contact Us
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想将其提供给一些(递归?)函数并获得以下输出:
array(
'Home' => array(),
'Products' => array(
'Product 1' => array(
'Product 1 Images' => array(),
),
'Product 2' => array(
'Product 2 Images' => array(),
),
'Where to Buy' => array(),
),
'About Us' => array(
'Meet the Team' => array(),
'Careers' => array(),
),
'Contact Us' => array(),
);
Run Code Online (Sandbox Code Playgroud)
我对执行这样一项任务所需的逻辑感到困惑,所以任何帮助都会受到赞赏.