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

News新聞

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

您的位置:首頁(yè)      樂(lè)道系統(tǒng)FAQ      PHP 無(wú)限級(jí)分類

PHP 無(wú)限級(jí)分類

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

有一段時(shí)間沒(méi)用過(guò)無(wú)限極分類,不巧今天又用到,所以特地去翻箱回顧以前。為了避免以后找起來(lái)麻煩,特地貼在這里。

<?php
/**
 * 無(wú)限級(jí)分類 類
 */
class Category{
 /**
  * 返回一維數(shù)組
  * @param [type] $cate 要遞歸的數(shù)組
  * @param string $html 子級(jí)分類前要顯示的縮進(jìn)符號(hào)。默認(rèn) '─'
  * @param integer $pid 父級(jí)分類ID。默認(rèn)為 0,表示頂級(jí)分類
  * @param integer $level level級(jí),配合 $html 顯示足夠的縮進(jìn)。默認(rèn)為 1,表示頂級(jí)分類
  * @return [type]   [description]
  */
 static public function unlimitedForLevel($cate, $html = '─', $pid = 0, $level = 1){
  $arr = array();
  foreach($cate as $v){
   if($v['pid'] == $pid){
    $v['level'] = $level;
    $v['html'] = str_repeat($html, $level - 1);
    $arr[] = $v;
    $arr = array_merge($arr, $this->unlimitedForLevel($cate, $html, $v['id'], $level + 1));
   }
  }
  return $arr;
 }
 /**
  * 返回多維數(shù)組
  * @param [type] $cate 要遞歸的數(shù)組
  * @param string $name 子級(jí)分類在父分類數(shù)組中的 key
  * @param integer $pid 父級(jí)分類ID。默認(rèn)為0,表示頂級(jí)分類
  * @return [type]  [description]
  */
 static public function unlimitedForlayer($cate, $name = 'child', $pid = 0){
  $arr = array();
  foreach($cate as $v){
   if( $v['pid'] == $pid){
    $v[$name] = self::unlimitedForlayer($cate, $name, $v['id']);
    $arr[] = $v;
   }
  }
  return $arr;
 }
 /**
  * 傳遞子分類ID返回所有父級(jí)分類
  * @param [type] $cate 要遞歸的數(shù)組
  * @param [type] $id 子分類ID
  * @return [type]  [description]
  */
 static public function getParents($cate, $id){
  $arr = array();
  foreach($cate as $v){
   if($v['id'] == $id){
    $arr[] = $v;
    $arr = array_merge(self::getParents($cate, $v['pid']), $arr);
   }
  }
  return $arr;
 }
 /**
  * 傳遞父級(jí)分類ID返回所有子分類ID
  * @param [type] $cate 要遞歸的數(shù)組
  * @param [type] $pid 父級(jí)分類ID
  * @return [type]  [description]
  */
 static public function getChildrenId($cate, $pid){
  $arr = array();
  foreach($cate as $v){
   if($v['pid'] == $pid){
    $arr[] = $v['id'];
    $arr = array_merge($arr, self::getChildrenId($cate, $v['id']));
   }
  }
  return $arr;
 }
 /**
  * 傳遞父級(jí)分類ID返回所有子級(jí)分類
  * @param [type] $cate 要遞歸的數(shù)組
  * @param [type] $pid 父級(jí)分類ID
  * @return [type]  [description]
  */
 static public function getChildren($cate, $pid){
  $arr = array();
  foreach($cate as $v){
   if($v['pid'] == $pid){
    $arr[] = $v;
    $arr = array_merge($arr, self::getChildren($cate, $v['id']));
   }
  }
  return $arr;
 }
}
?>