成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP實現無限極分類生成分類樹的方法
全站頭部文字 我要出現在這里
PHP實現無限極分類生成分類樹的方法 748 2023-12-08   

本文實例講述了PHP實現無限極分類生成分類樹的方法。分享給大家供大家參考,具體如下:

現在的分類數據庫設計基本都是:每一個分類有一個id主鍵字段,一個pid指向父類的id,這樣便可實現無限級分類,取出的數據就是如下的格式:

$arr = array(
  array("id" => 1 , "pid" => 0 , 'cat' => '欄目一'),
  array("id" => 2 , "pid" => 0 , 'cat' => '欄目二'),
  array("id" => 3 , "pid" => 1 , 'cat' => '欄目三'),
  array("id" => 4 , "pid" => 2 , 'cat' => '欄目四'),
  array("id" => 5 , "pid" => 1 , 'cat' => '欄目五'),
  array("id" => 6 , "pid" => 5 , 'cat' => '欄目六'),
  array("id" => 7 , "pid" => 5 , 'cat' => '欄目七'),
  array("id" => 8 , "pid" => 6 , 'cat' => '欄目八'),
  array("id" => 9 , "pid" => 1 , 'cat' => '欄目九'),
  array("id" => 10 , "pid" => 0 , 'cat' => '欄目十'),
  array("id" => 11 , "pid" => 10 , 'cat' => '欄目十一'),
  array("id" => 12 , "pid" => 11 , 'cat' => '欄目十二'),
  array("id" => 13 , "pid" => 2 , 'cat' => '欄目十三'),
  array("id" => 14, "pid" => 13 , 'cat' => '欄目十四')
);

不多說,直接上處理代碼:

//生成無限極分類樹
function make_tree($arr){
  $refer = array();
  $tree = array();
  foreach($arr as $k => $v){
    $refer[$v['id']] = & $arr[$k]; //創建主鍵的數組引用
  }
  foreach($arr as $k => $v){
    $pid = $v['pid'];  //獲取當前分類的父級id
    if($pid == 0){
      $tree[] = & $arr[$k];  //頂級欄目
    }else{
      if(isset($refer[$pid])){
        $refer[$pid]['subcat'][] = & $arr[$k]; //如果存在父級欄目,則添加進父級欄目的子欄目數組中
      }
    }
  }
  return $tree;
}

測試運行:

$cat = make_tree($arr);
print_r($cat);

運行結果:

Array
(
  [0] => Array
    (
      [id] => 1
      [pid] => 0
      [cat] => 欄目一
      [subcat] => Array
        (
          [0] => Array
            (
              [id] => 3
              [pid] => 1
              [cat] => 欄目三
            )
          [1] => Array
            (
              [id] => 5
              [pid] => 1
              [cat] => 欄目五
              [subcat] => Array
                (
                  [0] => Array
                    (
                      [id] => 6
                      [pid] => 5
                      [cat] => 欄目六
                      [subcat] => Array
                        (
                          [0] => Array
                            (
                              [id] => 8
                              [pid] => 6
                              [cat] => 欄目八
                            )
                        )
                    )
                  [1] => Array
                    (
                      [id] => 7
                      [pid] => 5
                      [cat] => 欄目七
                    )
                )
            )
          [2] => Array
            (
              [id] => 9
              [pid] => 1
              [cat] => 欄目九
            )
        )
    )
  [1] => Array
    (
      [id] => 2
      [pid] => 0
      [cat] => 欄目二
      [subcat] => Array
        (
          [0] => Array
            (
              [id] => 4
              [pid] => 2
              [cat] => 欄目四
            )
          [1] => Array
            (
              [id] => 13
              [pid] => 2
              [cat] => 欄目十三
              [subcat] => Array
                (
                  [0] => Array
                    (
                      [id] => 14
                      [pid] => 13
                      [cat] => 欄目十四
                    )
                )
            )
        )
    )
  [2] => Array
    (
      [id] => 10
      [pid] => 0
      [cat] => 欄目十
      [subcat] => Array
        (
          [0] => Array
            (
              [id] => 11
              [pid] => 10
              [cat] => 欄目十一
              [subcat] => Array
                (
                  [0] => Array
                    (
                      [id] => 12
                      [pid] => 11
                      [cat] => 欄目十二
                    )
                )
            )
        )
    )
)

如果大家需要這樣的組裝格式,或者需要該格式方便后續的處理,可以嘗試此方法

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP常用遍歷算法與技巧總結》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。


主站蜘蛛池模板: 抗击 电影| 即便是爸爸也想恋爱| 火舞俪人 电影| 尤勇个人资料简介简历| 杨紫和肖战演的电视剧是什么| 消防知识竞赛题库及答案| 接吻戏| 抖音最火的图片| 三年片在线观看电影在线观看大全| 梦想建筑师泰国百合剧| 如果云知道歌词| 美女全身脱光| https://www.douyin.com/pay| 加藤なお| 梁祝吉他谱独奏完整| 电视播放| 列维| 李坤忆| 久久久在线视频| 插树岭演员表| 民国奇探2出来了吗| 儿童眼轴长度正常范围| 流浪地球2演员表| 美丽的坏女人中文字幕| 娇喘视频在线观看| 鬣狗交配视频| 错爱电影| 十万个冷笑话第二季| 风霜踩泥| 77316电影| 梦醒长安| 三级大片在线观看| 绿门背后| 挖掘机动画片儿童| 美国伦理三颗熟樱桃| 美式壁纸| 周末父母42集剧情介绍| 男生女生向前冲2014| 白浩| 柏欣彤12点以后跳的广场舞| 天与地越南版|

?。。≌鹃L長期在線接!??!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103