【发布时间】:2015-01-08 04:19:13
【问题描述】:
在这个例子中,我有一个元素数组。
$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"]
【问题讨论】:
-
您希望数组在哪里排序?通过 SQL(您的数据库调用)还是在 PHP 中?现在,如果使用
for循环,您必须遍历$array中的元素并调用parent($array[$i]),弄清楚如何更改它们的顺序或推送到新的排序数组。 -
您希望您的结果是什么样的?应该是
['C', 'A', 'E', 'B', 'D']?还有什么?你想要一个多维数组吗? “下面”是什么意思? -
可能有助于显示您的数据库调用的结果。即,如何“确定”哪些元素是哪些元素的子元素。
-
需要更多细节:数据库结构、示例数据、当前解决方案。
-
听起来您正在尝试使用相同的排序数组来表示多个树结构。我认为这不是一个好主意。
标签: php