<?php
namespace Library\Org\Util;
class Category{
//组合一维数组
static public function unlimitedForLelel($cate,$html = '--',$pid = 0,$level = 0){
$arr = array();
foreach($cate as $v){
if($v['pid'] == $pid){
$v['level'] = $level + 1;
$v['html'] = str_repeat($html,$level);
$arr[] = $v;
$arr = array_merge($arr,self::unlimitedForLelel($cate,$html,$v['id'],$v['level']));
}
}
return $arr;
}
//组合多维数组
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返回所有的父级分类(面包屑)
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返回所有的子级分类
static public function getChilds($cate,$pid){
$arr = array();
foreach($cate as $v){
if($v['pid'] == $pid){
$arr[] = $v;
$arr = array_merge($arr,self::getChilds($cate,$v['id']));
}
}
return $arr;
}
//传递一个父级分类ID返回所有的子级分类ID
static public function getChildsId($cate,$pid){
$arr = array();
foreach($cate as $v){
if($v['pid'] == $pid){
$arr[] = $v['id'];
$arr = array_merge($arr,self::getChilds($cate,$v['id']));
}
}
return $arr;
}
}