在这个例子中,我有一个元素数组。
$array = ["Element A", "Element B", "Element C", "Element D", "Element E"]
在进行数据库调用之后(我已经想出这部分......),确定“B”和“D”是元素E的子元素。另外,“A”是“C”的子元素。
出于演示目的,parent($a)
将返回"c"
而parent($e)
将返回NULL
。
如何重新排序数组,以便所有子元素都直接位于其父元素下面?
正确的解决方案是这样的,儿童直接在父母之后:
["E", "B", "D", "C", "A"]
["E", "D", "B", "C", "A"]
["C", "A", "E", "B", "D"]
["C", "A", "E", "D", "B"]
答案 0 :(得分:1)
以下一般结构可概述如何订购您的问题。
if(CHILD) {
if(PARENT EXISTS) {
DELETE THIS ELEMENT
INSERT AT LOCATION
} else {
DELETE THIS ELEMENT
ADD PARENT
RE-ADD THIS ELEMENT
}
}
没有细节,只是一个大纲......