簡體   English   中英

親子關系的PHP更改數組順序

[英]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 = 9TASK_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM