pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

PHP實現(xiàn)無限極分類生成分類樹的方法

這篇文章主要介紹了PHP實現(xiàn)無限極分類生成分類樹的方法,結(jié)合實例形式簡單分析了無限極分類的原理與實現(xiàn)方法,涉及PHP數(shù)組遍歷與判斷相關(guān)操作技巧,需要的朋友可以參考下

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

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

$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]; //創(chuàng)建主鍵的數(shù)組引用
  }
  foreach($arr as $k => $v){
    $pid = $v['pid'];  //獲取當(dāng)前分類的父級id
    if($pid == 0){
      $tree[] = & $arr[$k];  //頂級欄目
    }else{
      if(isset($refer[$pid])){
        $refer[$pid]['subcat'][] = & $arr[$k]; //如果存在父級欄目,則添加進父級欄目的子欄目數(shù)組中
      }
    }
  }
  return $tree;
}

測試運行:

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

運行結(jié)果:

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] => 欄目十二
                    )
                )
            )
        )
    )
)

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

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

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

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務(wù)器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應(yīng)用程序,并傳遞相關(guān)參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實現(xiàn)依賴注入過程以及相關(guān)知識點分享,對此有興趣的朋友跟著小編學(xué)習(xí)下吧。
php遍歷一個文件夾內(nèi)的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現(xiàn)達到清空一個目錄的效果。本文給大家分享實例代碼,需要的朋友參考
主站蜘蛛池模板: 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 蒸汽吸附分析仪-进口水分活度仪|康宝百科| 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 节流截止放空阀-不锈钢阀门-气动|电动截止阀-鸿华阀门有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 深圳湾1号房价_深圳湾1号二手房源| 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 120kv/2mA直流高压发生器-60kv/2mA-30kva/50kv工频耐压试验装置-旭明电工 | 北京燃气公司 用户服务中心| 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 钢制暖气片散热器_天津钢制暖气片_卡麦罗散热器厂家 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | ZHZ8耐压测试仪-上海胜绪电气有限公司| 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 湖南教师资格网-湖南教师资格证考试网 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 长信科技产业园官网_西安厂房_陕西标准工业厂房| 爆炸冲击传感器-无线遥测传感器-航天星百科 | 微动开关厂家-东莞市德沃电子科技有限公司 |