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://pwwzsj.com/article/pshedg.html