这里首先介绍一下,什么是无限极分类?
无限极分类简单点说就是一个类可以分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样
下面是实例代码
mallcloud商城基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离vue的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提
unlimitedForLevel($cate, $html, $v['id'], $level + 1));
}
}
return $arr;
}
/**
* 返回多维数组
* @param [type] $cate 要递归的数组
* @param string $name 子级分类在父分类数组中的 key
* @param integer $pid 父级分类ID。默认为0,表示顶级分类
* @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返回所有父级分类
* @param [type] $cate 要递归的数组
* @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;
}
/**
* 传递父级分类ID返回所有子分类ID
* @param [type] $cate 要递归的数组
* @param [type] $pid 父级分类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;
}
/**
* 传递父级分类ID返回所有子级分类
* @param [type] $cate 要递归的数组
* @param [type] $pid 父级分类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;
}
}
?>










