[英]PHP Change Array Order for Parent-Child Relation
當前數組結構:
Array
(
[0] => Array
(
[TASK_ID] => 2
[PARENT_TASKID] => 0
[TASK_LEVEL] => 0
)
[1] => Array
(
[TASK_ID] => 1
[PARENT_TASKID] => 0
[TASK_LEVEL] => 0
)
[2] => Array
(
[TASK_ID] => 4
[PARENT_TASKID] => 1
[TASK_LEVEL] => 1
)
[3] => Array
(
[TASK_ID] => 5
[PARENT_TASKID] => 1
[TASK_LEVEL] => 1
)
[4] => Array
(
[TASK_ID] => 6
[PARENT_TASKID] => 5
[TASK_LEVEL] => 2
)
[5] => Array
(
[TASK_ID] => 9
[PARENT_TASKID] => 2
[TASK_LEVEL] => 1
)
[6] => Array
(
[TASK_ID] => 10
[PARENT_TASKID] => 2
[TASK_LEVEL] => 1
)
)
您可以觀察到PARENT_TASKID
是孩子的TASK_ID
。 例如:
Array
(
[TASK_ID] => 9
[PARENT_TASKID] => 2
)
這里TASK_ID = 9
是TASK_ID = 2
的子代。 注意PARENT_TASKID
。
Array (
[TASK_ID] => 2
[PARENT_TASKID] => 0
[TASK_LEVEL] => 0
)
我如何更改上述數組格式,以使子數組位於其父目錄下,如下所示:
[0] => Array
(
[TASK_ID] => 2
[PARENT_TASKID] => 0
[TASK_LEVEL] => 0
)
[1] => Array
(
[TASK_ID] => 9
[PARENT_TASKID] => 2
[TASK_LEVEL] => 1
)
[2] => Array
(
[TASK_ID] => 10
[PARENT_TASKID] => 2
[TASK_LEVEL] => 1
)
我不打算將孩子放在父母的正下方,而是相應地更改排列順序。
您想要的被稱為拓撲排序。 您可以在此處找到一些有關如何解決此問題的信息, http://en.wikipedia.org/wiki/Topological_sorting
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.