PHP无限极分类

今天翻代码,看到这么一段,不知道以前是去哪里复制,感觉不错,给大家看看
/***
无限极分类之------规则递归
*/
static public function RuleList($rule,$pid=0,$lev=1)
{
   $arr=array();
   foreach($rule as $v){
      if (!isset($v['catid']) || empty($v['catid'])) 
      {
         $v['catid'] = $v['id'];
      }
      if($v['pid']==$pid)
      {
         $v['lev']=$lev;
         $arr[]=$v;
         $arr=array_merge($arr,self::RuleList($rule,$v['catid'],$lev+1));
      }
   }
   return $arr;
}


/**
无限极分类之------循环顶级导航和子导航方法 组合多维数组
**/
static public function     Rulelayer($rule,$pid=0){
   //生命新的空数组,存放组合的多维数组
   $arr=array();
   foreach($rule as $v){
      

      if (!isset($v['catid']) || empty($v['catid'])) 
      {
         $v['catid'] = $v['id'];
      }
      
      if($v['pid']==$pid){
         $v['child']=self::Rulelayer($rule,$v['catid']);
         $arr[]=$v;
      }
   }
   return $arr;
}

static public function     Rulelayers($rule,$pid=0){
   $arr=array();
   foreach($rule as $v){
      if($v['pid']==$pid){
         $v['child']=self::Rulelayers($rule,$v['id']);
         $arr[]=$v;
      }
   }
   return $arr;
}

/**
无限极分类之------面包屑实现方法------通过传递子分类的id查找其所有的父类
**/
static public function getParents($rule,$catid){
   $arr=array();
   foreach($rule as $v){
      if($v['catid']==$catid){
         $arr[]=$v;
         //$arr=array_merge($arr,self::getParents($rule,$v['pid']));  //获取子分类的所有父分类
         $arr=array_merge(self::getParents($rule,$v['pid']),$arr); //替换下位置实现面包屑导航
         
      }
   }
   return $arr;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值