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

发布时间:2020-06-04 07:57:33 作者:温小城
来源:网络 阅读:353
<?php
//分析
/*
	福建省
		福州市
		龙岩市
	广东省
		广州市
		佛山市
		晋江市
			江门市
	江西省
		南昌市
		赣州市
			宁都县
			大余县
			信封县
		吉安市


cat_id		pri			parent_id
1			福建省			0
2			福州市			1
3			龙岩市			1
4			广东省			0
5			广州市			4
6			佛山市			4
7			晋江市			4	
8			江门市			7
9			江西省			0
10			南昌市			9
11			赣州市			9
12			宁都县			11
13			大余县			11
14			信封县			11
15			吉安市			9
16
*/
?>

<?php
header("content-type:text/html;charset=utf-8");
//php实现无限分类
$area = array(
array('cat_id'=>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('&nbsp&nbsp&nbsp',$v['lev']),$v['province'],'<br />';
}
?>
推荐阅读:
  1. 怎么在tp5中利用递归实现无限级分类
  2. 怎么在PHP中利用递归实现一个统计功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php 递归 无限级分类

上一篇:php+jquery+ajax实现用户名验证

下一篇:进阶-中小型网络构建-二层VLAN技术详解配实验步骤

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》