亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2017年09月11日 10:21:54   作者:紅塵困住年少  
這篇文章主要介紹了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'];  //獲取當前分類的父級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è)計有所幫助。

相關(guān)文章

最新評論