PHP 无限级分类
有一段时间没用过无限极分类,不巧今天又用到,所以特地去翻箱回顾以前。为了避免以后找起来麻烦,特地贴在这里。
unlimitedForLevel($cate,$html,$v['id'],$level+1));
}
}
return$arr;
}
/**
*返回多维数组
*@param[type]$cate要递归的数组
*@paramstring$name子级分类在父分类数组中的key
*@paraminteger$pid父级分类ID。默认为0,表示顶级分类
*@return[type][description]
*/
staticpublicfunctionunlimitedForlayer($cate,$name='child',$pid=0){
$arr=array();
foreach($cateas$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]
*/
staticpublicfunctiongetParents($cate,$id){
$arr=array();
foreach($cateas$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]
*/
staticpublicfunctiongetChildrenId($cate,$pid){
$arr=array();
foreach($cateas$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]
*/
staticpublicfunctiongetChildren($cate,$pid){
$arr=array();
foreach($cateas$v){
if($v['pid']==$pid){
$arr[]=$v;
$arr=array_merge($arr,self::getChildren($cate,$v['id']));
}
}
return$arr;
}
}
?>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!