2011-02-24 39 views
3

我已經存儲了一些數據在一個表中,像這樣的MySQL數據嵌套數組:PHP - 創建一個從

id parent_id name 
1 0   Entry 1 
2 0   Entry 2 
3 0   Entry 3 
4 1   Child of entry 1 

我希望把它變成一個嵌套的數組,像這樣:

array(
    array(
     'id' => 1, 
     'parent_id' => 0, 
     'name' => 'Entry 1', 
     'children' => array(...) 
    ), 
    ... 
); 

理想,它需要支持無限量的嵌套(有孩子的孩子)。我的表設置爲支持這個,如果是的話,我將如何使用表中的數據生成這種類型的數組?如果不是,我應該如何設置我的桌子?

回答

5

這裏有在MySQL管理分層數據很好的說明: managing hierarchical data 這裏是構建嵌套數組的另一個很好的例子: building nested arrays

你可以考慮使用嵌套集模型。如果你要查詢一些東西,比你現在使用的鄰接模型要好。

希望有所幫助。

+1

第二個鏈接的例子正是我所期待的,謝謝 – jeff1234567890 2011-02-24 23:30:09

+1

不客氣。 – 2011-02-25 08:28:04

0

你不會有來自「普通」SQL數據集的分層數據,但你可以編寫一個遞歸的函數。目前我無法提供代碼,但您可能會明白。