在 PHP 中實現無限級分類可以使用遞歸的方法來實現。以下是一個示例代碼:
// 定義一個函數來獲取指定父級分類的子級分類
function getChildCategories($parentId, $categories) {
$childCategories = array();
foreach ($categories as $category) {
if ($category['parent_id'] == $parentId) {
$category['children'] = getChildCategories($category['id'], $categories);
$childCategories[] = $category;
}
}
return $childCategories;
}
// 從數據庫中獲取所有分類數據
// 這里使用一個簡單的數組來模擬數據庫查詢結果
$categories = array(
array('id' => 1, 'name' => '分類1', 'parent_id' => 0),
array('id' => 2, 'name' => '分類2', 'parent_id' => 0),
array('id' => 3, 'name' => '分類3', 'parent_id' => 1),
array('id' => 4, 'name' => '分類4', 'parent_id' => 1),
array('id' => 5, 'name' => '分類5', 'parent_id' => 2),
array('id' => 6, 'name' => '分類6', 'parent_id' => 4),
);
// 獲取頂級分類(父級分類為0)
$topLevelCategories = getChildCategories(0, $categories);
// 輸出無限級分類
function printCategories($categories, $indent = 0) {
foreach ($categories as $category) {
echo str_repeat(' ', $indent * 4) . $category['name'] . "<br>";
if (!empty($category['children'])) {
printCategories($category['children'], $indent + 1);
}
}
}
printCategories($topLevelCategories);
以上代碼中,getChildCategories
函數用于獲取指定父級分類的子級分類,使用遞歸的方式獲取所有子級分類。printCategories
函數用于輸出無限級分類,使用了縮進來展示分類的層級關系。最后,通過調用 printCategories
函數輸出頂級分類即可實現無限級分類的展示。