php下利用递归实现无限级分类



1,'province'=>'福建省','parent_id'=>0),
array('cat_id'=>2,'province'=>'龙岩市','parent_id'=>1),
array('cat_id'=>3,'province'=>'广东省','parent_id'=>0),
array('cat_id'=>4,'province'=>'佛山市','parent_id'=>3),
array('cat_id'=>5,'province'=>'江西省','parent_id'=>0),
array('cat_id'=>6,'province'=>'南昌市','parent_id'=>5),
array('cat_id'=>7,'province'=>'赣州市','parent_id'=>5),
array('cat_id'=>8,'province'=>'宁都县','parent_id'=>7),
);
/*
参数说明:
$area:array 一个数组,存放了分类的栏目
$parent_id:int 用作查询的条件
$lev:int 实现子栏目的缩进
*/
function sortarea($area,$parent_id = 0,$lev = 1){
//声明一个变量为static,这个变量是一个数组
static $list;
foreach($area as $v){
//如果父id=0,则取出顶层栏目,之后通过递归传递过来cat_id,判断parent_id是否等于cat_id
if($v['parent_id'] == $parent_id){
//把$lev变量放进$v的数组中去
$v['lev'] = $lev;
$list[] = $v;
sortarea($area,$v['cat_id'],$lev+1);
}
}
return $list;
}
$list = sortarea($area,0,1);
foreach($list as $v){
//用str_repeat函数实现子栏目缩进
echo str_repeat('   ',$v['lev']),$v['province'],'';
}
?>

文章标题:php下利用递归实现无限级分类
分享路径:http://hbruida.cn/article/pshedg.html