PHP遞歸實(shí)現(xiàn)無限級(jí)分類的代碼示例
什么是無限級(jí)分類?
無限級(jí)分類是一種對(duì)商品或信息進(jìn)行分類的方式,在這種分類方式中,每個(gè)分類都可以再次細(xì)分出更多的子分類,形成無限的級(jí)別
應(yīng)用場景:
一個(gè)電商網(wǎng)站的分類可以是:服裝、鞋類、家居用品等,而服裝分類下又可以進(jìn)一步劃分成男裝、女裝、童裝等子分類,男裝分類下又可以劃分成襯衫、T恤、外套等子分類,這樣就形成了多層次的無限級(jí)分類
在PHP中實(shí)現(xiàn)無限級(jí)分類可以使用遞歸的方法來實(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)無限級(jí)分類的代碼示例的詳細(xì)內(nèi)容,更多關(guān)于PHP遞歸實(shí)現(xiàn)無限級(jí)分類的資料請(qǐng)關(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-11PHP實(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后臺(tái)登錄空白問題的方法
為什么會(huì)出現(xiàn)更換PHP5.4以上版本后Dedecms后臺(tái)登錄空白的情況,本文將給大家詳細(xì)分析,找出真正原因以及解決辦法。2015-10-10php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實(shí)現(xiàn)
本文為大家介紹下php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實(shí)現(xiàn),感興趣的朋友不要錯(cuò)過2013-12-12PHP處理JSON字符串key缺少雙引號(hào)的解決方法
這篇文章主要介紹了PHP處理JSON字符串key缺少雙引號(hào)的解決方法,是非常常見的一類錯(cuò)誤處理情況,需要的朋友可以參考下2014-09-09PHP獲取當(dāng)前文件所在目錄 getcwd()函數(shù)
PHP 當(dāng)前目錄獲取方法。2009-05-05linux環(huán)境apache多端口配置虛擬主機(jī)的方法深入介紹
本篇文章是對(duì)linux環(huán)境apache多端口配置虛擬主機(jī)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06