人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      樂道系統(tǒng)FAQ      PHP無限極分類函數(shù)的實現(xiàn)方法詳解

PHP無限極分類函數(shù)的實現(xiàn)方法詳解

標(biāo)簽: 發(fā)布日期:2017-04-15 00:00:00 240

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

在開發(fā)程序的時候,有時候,我們需要獲取所有欄目(包括一級欄目、二級欄目、三級欄目等等),并按照父子關(guān)系形成樹型結(jié)構(gòu)??梢圆扇∈褂眠f歸或者通過引用方式(php中引用類似C或者C++中的指針,只不過換一種說法而已)。

通過引用方式實現(xiàn)無限極分類

思路:

1.即所有待處理的數(shù)據(jù)進(jìn)行包裝成下標(biāo)為主鍵id(pk)的數(shù)組,便于有pid獲取對應(yīng)的父欄目。

2.對包裝的數(shù)據(jù)進(jìn)行循環(huán),如果為根節(jié)點(diǎn),則將其引用添加到tree中,否則,將其引用添加到其父類的子元素中。這樣雖然tree中,只是添加了根節(jié)點(diǎn),但是每個根節(jié)點(diǎn)如果有子元素,其中包含了子元素的引用。故能形成樹型。

代碼如下

/**
 * 把返回的數(shù)據(jù)集轉(zhuǎn)換成Tree
 * @param array $list 要轉(zhuǎn)換的數(shù)據(jù)集
 * @param string $pk 自增字段(欄目id)
 * @param string $pid parent標(biāo)記字段
 * @return array
 * @author dqs <1696232133@qq.com>
 */
function make_tree($list,$pk='id',$pid='pid',$child='_child',$root=0){
  $tree=array();
  $packData=array();
  foreach ($list as $data) {
    $packData[$data[$pk]] = $data;
  }
  foreach ($packData as $key =>$val){
    if($val[$pid]==$root){//代表跟節(jié)點(diǎn)
      $tree[]=& $packData[$key];
    }else{
      //找到其父類
      $packData[$val[$pid]][$child][]=& $packData[$key];
    }
  }
  return $tree;
}