共計 924 個字符,預計需要花費 3 分鐘才能閱讀完成。
使用 PHP 遞歸實現無限級分類的步驟如下:
- 創建一個數組或從 數據庫 中獲取分類數據,包含 id 和 parent_id 字段,表示分類的唯一標識和父級分類的標識。
- 創建一個遞歸函數,接受兩個參數:分類數據和父級分類的 id。
- 在遞歸函數中,遍歷分類數據,找到父級分類 id 等于當前傳入的父級 id 的分類。
- 在遍歷過程中,將找到的分類添加到一個新的數組中,并調用遞歸函數傳入當前找到的分類 id 作為父級 id。
- 遞歸函數將會一直執行直到找不到符合條件的分類,然后返回最終的分類數組。
下面是一個示例代碼:
function buildTree($categories, $parent_id = 0) {$tree = array();
foreach ($categories as $category) {if ($category['parent_id'] == $parent_id) {$children = buildTree($categories, $category['id']);
if ($children) {$category['children'] = $children;
}
$tree[] = $category;}
}
return $tree;
}
// 示例數據
$categories = array(array('id' => 1, 'parent_id' => 0, 'name' => '分類 1'),
array('id' => 2, 'parent_id' => 0, 'name' => '分類 2'),
array('id' => 3, 'parent_id' => 1, 'name' => '分類 1 -1'),
array('id' => 4, 'parent_id' => 1, 'name' => '分類 1 -2'),
array('id' => 5, 'parent_id' => 3, 'name' => '分類 1 -1-1'),
array('id' => 6, 'parent_id' => 2, 'name' => '分類 2 -1'),
array('id' => 7, 'parent_id' => 0, 'name' => '分類 3'),
);
$result = buildTree($categories);
print_r($result);
運行以上代碼將輸出遞歸生成的分類樹形結構數組。
丸趣 TV 網 – 提供最優質的資源集合!
正文完