共計(jì) 1461 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
在 PHP 中實(shí)現(xiàn)無(wú)限級(jí)分類可以使用遞歸的方法來(lái)實(shí)現(xiàn)。以下是一個(gè)示例代碼:
// 定義一個(gè)函數(shù)來(lái)獲取指定父級(jí)分類的子級(jí)分類
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;
}
// 從數(shù)據(jù)庫(kù)中獲取所有分類數(shù)據(jù)
// 這里使用一個(gè)簡(jiǎn)單的數(shù)組來(lái)模擬數(shù)據(jù)庫(kù)查詢結(jié)果
$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),
);
// 獲取頂級(jí)分類(父級(jí)分類為 0)
$topLevelCategories = getChildCategories(0, $categories);
// 輸出無(wú)限級(jí)分類
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
函數(shù)用于獲取指定父級(jí)分類的子級(jí)分類,使用遞歸的方式獲取所有子級(jí)分類。printCategories
函數(shù)用于輸出無(wú)限級(jí)分類,使用了縮進(jìn)來(lái)展示分類的層級(jí)關(guān)系。最后,通過(guò)調(diào)用 printCategories
函數(shù)輸出頂級(jí)分類即可實(shí)現(xiàn)無(wú)限級(jí)分類的展示。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完