0
不幸的是,我爲涉及遞歸的任何事情而苦惱,而且這個問題也沒有什麼不同。通過多維PHP陣列遞歸以生成HTML列表
我在PHP數組中有一個類別結構。我已經通過父類這樣的分組,但如果解決工作的需要,我會很樂意改變:
array(5) {
[0] => array(4) {
[50] => array(5) {
["category_id"] => int(50)
["category_title"] => string(29) "Category 50"
["parent_category_id"] => int(0)
["display_order"] => int(0)
["depth"] => int(0)
}
[1] => array(5) {
["category_id"] => int(1)
["category_title"] => string(24) "Category 1"
["parent_category_id"] => int(0)
["display_order"] => int(1)
["depth"] => int(0)
}
[80] => array(5) {
["category_id"] => int(80)
["category_title"] => string(27) "Category 80"
["parent_category_id"] => int(0)
["display_order"] => int(1)
["depth"] => int(0)
}
[10] => array(5) {
["category_id"] => int(10)
["category_title"] => string(29) "Category 10"
["parent_category_id"] => int(0)
["display_order"] => int(10)
["depth"] => int(0)
}
}
[1] => array(1) {
[2] => array(5) {
["category_id"] => int(2)
["category_title"] => string(21) "Category 2"
["parent_category_id"] => int(1)
["display_order"] => int(1)
["depth"] => int(1)
}
}
[30] => array(1) {
[90] => array(5) {
["category_id"] => int(90)
["category_title"] => string(11) "Category 90"
["parent_category_id"] => int(30)
["display_order"] => int(1)
["depth"] => int(2)
}
}
[10] => array(2) {
[20] => array(5) {
["category_id"] => int(20)
["category_title"] => string(21) "Category 20"
["parent_category_id"] => int(10)
["display_order"] => int(10)
["depth"] => int(1)
}
[30] => array(5) {
["category_id"] => int(30)
["category_title"] => string(17) "Category 30"
["parent_category_id"] => int(10)
["display_order"] => int(20)
["depth"] => int(1)
}
}
[50] => array(3) {
[40] => array(5) {
["category_id"] => int(40)
["category_title"] => string(6) "Category 40"
["parent_category_id"] => int(50)
["display_order"] => int(1000)
["depth"] => int(1)
}
[60] => array(5) {
["category_id"] => int(60)
["category_title"] => string(6) "Category 60"
["parent_category_id"] => int(50)
["display_order"] => int(2000)
["depth"] => int(1)
}
[70] => array(5) {
["category_id"] => int(70)
["category_title"] => string(17) "Category 70"
["parent_category_id"] => int(50)
["display_order"] => int(3000)
["depth"] => int(1)
}
}
所以HTML的最終結果應該是這樣的:
<ul>
<li>Category 50</li>
<ul>
<li>Category 40</li>
<li>Category 60</li>
<li>Category 70</li>
</ul>
<li>Category 1</li>
<ul>
<li>Category 2</li>
</ul>
<li>Category 80</li>
<li>Category 10</li>
<ul>
<li>Category 20</li>
<li>Category 30</li>
<ul>
<li>Category 90</li>
</ul>
</ul>
</ul>
請注意,可能存在多層嵌套。
儘管沒有在上面的例子中描述,但是能夠爲每個列表項目使用不僅僅是'category_title'會有用(還有一些其他參數未顯示,例如已經刪除的計數和其他統計信息簡單)。
我非常感激你甚至已經閱讀了這一點。任何建議感激地收到。
最終結果HTML的可視化表示:
我期待將其轉換成HTML列表如下:
- 類別50
- 類別40
- 類別60
- 類別70
- 類別1
- 類別2
- 分類80
- 類別10
- 類別20
- 類別30
- 類別90
謝謝你的回答。它現在不像預期的那樣工作,但是這可能取決於數組的構造方式(按父類別分組)。我會做一些更多的測試。謝謝。 – SpongeBobPHPPants