2015-01-07 24 views
2

在這個例子中,我有一個元素數組。排序PHP數組與父母下的孩子

$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"] 
+1

排序?通過SQL(你的數據庫調用)或在PHP?現在,如果使用'for'循環,你必須遍歷'$ array'中的元素並調用'parent($ array [$ i])',找出如何改變它們的順序或者推入新的排序的數組。 –

+0

你想讓你的結果看起來像什麼?它應該是'['C','A','E','B','D']'?還有別的嗎?你想要一個多維數組嗎? 「下面」是什麼意思? –

+0

可能有助於顯示數據庫調用的結果。也就是說,如何「確定」哪些元素是其中的子元素。 – mopo922

回答

1

下面的一般結構可以概括如何訂購您的問題。

if(CHILD) { 
    if(PARENT EXISTS) { 
     DELETE THIS ELEMENT 
     INSERT AT LOCATION 
    } else { 
     DELETE THIS ELEMENT 
     ADD PARENT 
     RE-ADD THIS ELEMENT 
    } 
} 

沒有細節,只是一個輪廓......你想去哪裏數組

+1

本概述允許我創建實際的代碼,謝謝! (公認) – Sane