Q
樹形層次結構問題
1
A
回答
0
我做了類似於你在找什麼東西。我認爲這應該適合你,只需稍作調整。不要抱怨Wordpressiness - 無論如何,你應該能夠弄清楚它在做什麼。
function find_parents($category_id) {
global $wpdb;
$category = $category_id;
while (1) {
$parent_category = $wpdb->get_row(
$wpdb->prepare("SELECT * FROM hierarchy WHERE id=%d", $category)
);
$data[] = array(id => $parent_category->id, name => $parent_category->category_name);
if ($parent_category->parent_id == 0) {
break;
}
$category = $parent_category->parent_id;
}
return $data;
}
這將以相反的順序返回一個數組或項目,以及每個後續的父項。
功能再往相反的方向,從頂部類別,將檢索所有類別,是:
function find_children($parent_id, $data) {
foreach ($data as $child) {
if ($child->parent_id == $parent_id) {
$children[] = array(
'attr' => array(
'id' => 'cat_' . $child->id,
'dbid' => $child->id,
'link_to' => $child->link_to,
'rel' => ($child->link_to ? 'link' : 'default')
),
'data' => $child->category_name,
'children' => find_children($child->id, $data)
);
}
}
return $children;
}
他們倆之間,你可能能夠湊齊的東西在一起,我希望:/
1
使用自引用關係(或鄰接列表模型)來表示分層數據從來就不是一個好主意。最好的方法是使用Interval Trees或者Nested Sets。迄今爲止關於此主題的最佳參考資料是MySQL Developer Zone網站上的最佳參考資料,可以找到here。我已經使用這篇文章(和其他資源)使用Lambda表達式在C#中編寫我自己的實現。但是我引用的文章在解釋概念和顯示一些隨時可用的SQL代碼方面做得很好。
相關問題
- 1. 顯示樹形層次結構
- 2. Java樹的層次結構
- 3. Backbone.js和層次結構/樹
- 4. Oracle APEX樹層次結構限制/問題
- 5. JavaScript構建樹層次結構
- 6. 在javascript中構建層次結構樹
- 7. 使用Linq構建樹層次結構
- 8. Java或php樹形結構問題
- 9. ImagePicker在視圖層次結構問題
- 10. 的Git分支層次結構問題
- 11. React事件層次結構問題
- 12. Zend_Navigation層次結構問題與主頁
- 13. Java異常層次結構問題
- 14. Ultragrid/Winforms網格層次結構問題
- 15. Spring Security角色層次結構問題
- 16. 調用層次結構問題
- 17. 如何排列在樹形結構的層次結構設置SQL結果
- 18. 負荷層次結構樹狀
- 19. Oracle中的樹層次結構
- 20. NHibernate的親子樹層次結構
- 21. MySQL樹層次結構查詢?
- 22. 3DS模型加載 - 樹/層次結構
- 23. XSLT扁平列表樹層次結構
- 24. CTE遞歸獲取樹層次結構
- 25. Python QtreeWidget:返回樹層次結構
- 26. Python OpenCV輪廓樹的層次結構
- 27. 使用knockoutjs顯示層次結構(樹)
- 28. 在SQL Server層次結構中展平樹形路徑ID
- 29. 如何獲得Telerik樹形視圖的層次結構級別
- 30. 層次結構
你可以舉一個你的數據結構的例子嗎? – 2011-02-12 06:56:29
從下往上建樹不一定需要向上遍歷。請詳細解釋你想要達到的目標。 – 2011-02-12 07:01:14