您的位置:首页 > 编程语言 > PHP开发

工作中常用的php递归实现无限极分类的2种函数

2017-09-28 09:23 567 查看
在项目中我们常常用到无限极分类:

1.在下拉选择分类中,最简单的是将分类组装成二维数组,遍历一次即可:

//获取排列好的二维数组(带等级)
public function GetTree($arr,$pid,$step){
global $tree;
foreach($arr as $key=>$val) {
if($val['parent_id'] == $pid) {
$flg = str_repeat('|―',$step);//重复几次 根据等级不同重复次数不同
$val['name'] = $flg.$val['name'];
$val['level'] = $step;
$tree[] = $val;
$this->GetTree($arr , $val['id'] ,$step+1);
}
}
return $tree;
}


2.组装成多维数组:

//分类函数 (分成带child的多维数组)
public function buildTree($rows,$root_id){
$childs=$this->findChild($rows,$root_id);
if(empty($childs)){
return null;
}
foreach ($childs as $k => $v){
$rescurTree=$this->buildTree($rows,$v['id']);
if( null != $rescurTree){
$childs[$k]['child']=$rescurTree;
}
}
return $childs;
}





public function findChild(&$arr,$id){
$childs=array();

foreach ($arr as $k => $v){
if($v['parent_id']== $id){
$childs[]=$v;
}
}

return $childs;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 递归 分类