麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > PHP > 正文

php菜單/評(píng)論數(shù)據(jù)遞歸分級(jí)算法的實(shí)現(xiàn)方法

2024-05-05 00:10:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到分級(jí)場(chǎng)景,如菜單分級(jí)、評(píng)論、商品類型分級(jí)等;在同一張mysql數(shù)據(jù)表中可能設(shè)計(jì)單表結(jié)構(gòu),如同如下數(shù)據(jù):

 $menuList = [  [ 'id' => 1,'parent_id' => 0, 'name' => '節(jié)點(diǎn)1'],  [ 'id' => 2,'parent_id' => 1, 'name' => '節(jié)點(diǎn)1-1'],  [ 'id' => 3,'parent_id' => 0, 'name' => '節(jié)點(diǎn)2'],  [ 'id' => 4,'parent_id' => 3, 'name' => '節(jié)點(diǎn)2-1'],  [ 'id' => 5,'parent_id' => 2, 'name' => '節(jié)點(diǎn)1-1-1'],  [ 'id' => 6,'parent_id' => 1, 'name' => '節(jié)點(diǎn)1-2'], ];

這時(shí)候在處理展示過(guò)程就需要將上面的結(jié)構(gòu)轉(zhuǎn)換為更加直觀的數(shù)據(jù)結(jié)構(gòu), 形如:

$treeList = [ [ children: [  children: [] ] ] [, children: [  children: [] ] ]];

算法代碼如下:

<?phpclass Menu{ /**  * 遞歸循環(huán)菜單列表, 轉(zhuǎn)化為菜單樹(shù)  * @param $treeList 菜單樹(shù)列表  * @param $menuList 菜單列表  * @return bool  */ public function getMenuTree(&$treeList, $menuList) {  // 初始化頂級(jí)父節(jié)點(diǎn)  if (! count($treeList)) {   foreach($menuList as $index => $menu) {    if ($menu['parent_id'] == 0) {     $treeList[] = $menu;     unset($menuList[$index]);    }   }  }  // 遞歸查找子節(jié)點(diǎn)  foreach ($treeList as &$tree) {   foreach ($menuList as $index => $menu) {    if (empty($tree['children'])) {     $tree['children'] = [];    }    if ($menu['parent_id'] == $tree['id']) {     $tree['children'][] = $menu;     unset($menuList[$index]);    }   }   if (! empty($tree['children'])) {    $this->getMenuTree($tree['children'], $menuList);   } else {    // 遞歸臨界點(diǎn)    return false;   }  } }}$menuList = [ [ 'id' => 1,'parent_id' => 0, 'name' => '節(jié)點(diǎn)1'], [ 'id' => 2,'parent_id' => 1, 'name' => '節(jié)點(diǎn)1-1'], [ 'id' => 3,'parent_id' => 0, 'name' => '節(jié)點(diǎn)2'], [ 'id' => 4,'parent_id' => 3, 'name' => '節(jié)點(diǎn)2-1'], [ 'id' => 5,'parent_id' => 2, 'name' => '節(jié)點(diǎn)1-1-1'], [ 'id' => 6,'parent_id' => 1, 'name' => '節(jié)點(diǎn)1-2'],];$treeList = [];(new Menu)->getMenuTree($treeList, $menuList);print_r($treeList);

happy coding!

每一個(gè)不曾起舞的日子,都是對(duì)生命的辜負(fù) ^-^

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产资源在线免费观看 | 国产精品美女久久久久久不卡 | 国产精品亚洲综合一区二区三区 | 亚洲第五色综合网 | 欧美一级毛片一级毛片 | 色阁五月 | 午夜激情视频免费 | 一色桃子av大全在线播放 | 日本黄色不卡视频 | 国语自产免费精品视频在 | 久久成人午夜视频 | 欧美成年性h版影视中文字幕 | 国产一区二区观看 | 91av久久 | 亚洲情在线| 亚洲网站一区 | 福利在线播放 | 国产三级国产精品国产普男人 | 国产在线一区二区三区 | 国产精品伊人久久 | 国产成人在线观看免费网站 | 亚洲第一综合色 | 91成人免费在线观看 | 免费观看黄色一级视频 | 国产精品久久久久国产精品三级 | 欧美日韩在线中文 | 国内精品久久久久久久久久 | 毛片在线免费观看网址 | 久久久久九九九女人毛片 | 国产女厕一区二区三区在线视 | 欧美一级黄色免费看 | 国产欧美亚洲精品a | 免费男女视频 | 中文字幕电影免费播放 | 日韩黄网站 | 欧美人xx| 狠狠干天天操 | 日本a∨精品中文字幕在线 欧美1—12sexvideos | 国产亚洲精品久久久久久久久久 | 久草免费资源视频 | 色骚综合|