PHP遞歸實(shí)現(xiàn)無限級分類的代碼示例
什么是無限級分類?
無限級分類是一種對商品或信息進(jìn)行分類的方式,在這種分類方式中,每個(gè)分類都可以再次細(xì)分出更多的子分類,形成無限的級別
應(yīng)用場景:
一個(gè)電商網(wǎng)站的分類可以是:服裝、鞋類、家居用品等,而服裝分類下又可以進(jìn)一步劃分成男裝、女裝、童裝等子分類,男裝分類下又可以劃分成襯衫、T恤、外套等子分類,這樣就形成了多層次的無限級分類
在PHP中實(shí)現(xiàn)無限級分類可以使用遞歸的方法來實(shí)現(xiàn)。下面是一個(gè)簡單的示例:
<?php
// 模擬分類數(shù)據(jù)
$categories = array(
array('id' => 1, 'name' => '電子產(chǎn)品', 'parent_id' => 0),
array('id' => 2, 'name' => '手機(jī)', 'parent_id' => 1),
array('id' => 3, 'name' => '筆記本電腦', 'parent_id' => 1),
array('id' => 4, 'name' => '家用電器', 'parent_id' => 0),
array('id' => 5, 'name' => '電視', 'parent_id' => 4),
array('id' => 6, 'name' => '冰箱', 'parent_id' => 4),
array('id' => 7, 'name' => '空調(diào)', 'parent_id' => 4),
array('id' => 8, 'name' => '服飾', 'parent_id' => 0),
array('id' => 9, 'name' => '男裝', 'parent_id' => 8),
array('id' => 10, 'name' => '女裝', 'parent_id' => 8),
array('id' => 11, 'name' => '鞋類', 'parent_id' => 0),
array('id' => 12, 'name' => '男鞋', 'parent_id' => 11),
array('id' => 13, 'name' => '女鞋', 'parent_id' => 11),
array('id' => 14, 'name' => '數(shù)碼產(chǎn)品', 'parent_id' => 1),
array('id' => 15, 'name' => '相機(jī)', 'parent_id' => 14),
array('id' => 16, 'name' => '攝像機(jī)', 'parent_id' => 14),
array('id' => 17, 'name' => '辦公用品', 'parent_id' => 0),
array('id' => 18, 'name' => '文具', 'parent_id' => 17),
array('id' => 19, 'name' => '辦公設(shè)備', 'parent_id' => 17),
array('id' => 20, 'name' => '電腦配件', 'parent_id' => 1),
array('id' => 21, 'name' => '顯示器', 'parent_id' => 20),
array('id' => 22, 'name' => '內(nèi)存條', 'parent_id' => 20),
array('id' => 23, 'name' => '游戲機(jī)', 'parent_id' => 1),
array('id' => 24, 'name' => 'PS5', 'parent_id' => 23),
array('id' => 25, 'name' => 'Switch', 'parent_id' => 23),
);
// 遞歸處理分類數(shù)據(jù)
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;
}
// 構(gòu)建樹形結(jié)構(gòu)
$tree = buildTree($categories);
// 顯示分類數(shù)據(jù)
function showTree($tree, $indent = 0) {
foreach ($tree as $category) {
echo str_repeat("--", $indent) . $category['name'] . "<br>";
if (isset($category['children'])) {
showTree($category['children'], $indent + 1);
}
}
}
// 調(diào)用函數(shù)顯示樹形結(jié)構(gòu)
showTree($tree);以上就是PHP遞歸實(shí)現(xiàn)無限級分類的代碼示例的詳細(xì)內(nèi)容,更多關(guān)于PHP遞歸實(shí)現(xiàn)無限級分類的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
php 使用 __call實(shí)現(xiàn)重載功能示例
這篇文章主要介紹了php 使用 __call實(shí)現(xiàn)重載功能,結(jié)合實(shí)例形式分析了PHP使用__call實(shí)現(xiàn)重載的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
PHP實(shí)現(xiàn)的權(quán)重算法示例【可用于游戲根據(jù)權(quán)限來隨機(jī)物品】
這篇文章主要介紹了PHP實(shí)現(xiàn)的權(quán)重算法,可用于游戲根據(jù)權(quán)限來隨機(jī)物品,涉及php數(shù)組遍歷、隨機(jī)數(shù)處理及數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
解決更換PHP5.4以上版本后Dedecms后臺登錄空白問題的方法
為什么會出現(xiàn)更換PHP5.4以上版本后Dedecms后臺登錄空白的情況,本文將給大家詳細(xì)分析,找出真正原因以及解決辦法。2015-10-10
php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實(shí)現(xiàn)
本文為大家介紹下php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實(shí)現(xiàn),感興趣的朋友不要錯過2013-12-12
PHP獲取當(dāng)前文件所在目錄 getcwd()函數(shù)
PHP 當(dāng)前目錄獲取方法。2009-05-05
linux環(huán)境apache多端口配置虛擬主機(jī)的方法深入介紹
本篇文章是對linux環(huán)境apache多端口配置虛擬主機(jī)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

