# 前言
本篇將會使用 recursion 來呈現 N-level category tree
# 步驟
- 將 category tree 的階層關係定義在資料庫
- 從資料庫取出所有的 category 資料
- 使用 recursion 來呈現不同的 category 之間的 level 關係
# 定義階層關係到資料庫
# 建立資料表
CREATE TABLE `categories` ( |
# INSERT 階層關係
INSERT INTO categories VALUES |
此時階層關係像是:
# 取出資料
使用 PHP 來取出資料
<?php |
# 使用 recursion 呈現階層關係
使用 recursion, 我們只需帶入 root category, 便會把下面的所有 category 都顯示出來
loop 會 echo 每一個 parentCategory 底下的 category, 而隨後的 recursion 會檢查這些 category 是否底下還有 child categoriesif(isset($categories[$n]))
是此 recursion 的終點判斷, 我們通過上面取得的 $categories 為 array with parentCategoryId as index, 所以要是 isset($categories[$n])
為 false, 表示該 category 底下沒有 child category
此 recursion 屬於之前介紹過的 tail recursion
<?php |
輸出:
First |
-
的數量表示其 parent category, 例如 ---Fourth
位於 Third
category 之下
# 結語
本篇到此結束啦, 我們下次見!
留言