码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-05-12 19:16:56      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:php无限级分类   无限级分类   递归无限级分类   

<?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 />‘;
}
?>

本文出自 “小城工作室” 博客,请务必保留此出处http://xcroom.blog.51cto.com/7941996/1650586

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

标签:php无限级分类   无限级分类   递归无限级分类   

原文地址:http://xcroom.blog.51cto.com/7941996/1650586

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!