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 />‘;
}
?>
时间: 2024-10-22 01:53:04

php下利用递归实现无限级分类的相关文章

PHP不使用递归的无限级分类

不用递归实现无限级分类,简单测试了下性能比递归稍好一点点点,但写得太复杂了,还是递归简单方便点 代码: <?php $list = array( array('id'=>1, 'pid'=>0, 'deep'=>0, 'name'=>'test1'), array('id'=>2, 'pid'=>1, 'deep'=>1, 'name'=>'test2'), array('id'=>3, 'pid'=>0, 'deep'=>0, 'n

PHP迭代与递归实现无限级分类

无限级分类是开发中常见的情况,因此本文对常见的无限极分类算法进行总结归纳. 1.循环迭代实现 1 $arr = [ 2 1=>['id'=>1,'name'=>'父1','father'=>NULL], 3 2=>['id'=>2,'name'=>'父2','father'=>NULL], 4 3=>['id'=>3,'name'=>'父3','father'=>NULL], 5 4=>['id'=>4,'name'=&g

(实用篇)PHP递归实现无限级分类

在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才跳出,返回相应的数据. 首先

PHP递归实现无限级分类

在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才跳出,返回相应的数据. My

PHP利用递归函数实现无限级分类的方法_php技巧 - PHP

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 相信很多学php的很多小伙伴都会尝试做一个网上商城作为提升自己技术的一种途径.各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限级分类列表的制作了. 什么是无限级分类? 无限级分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限级分类,将其简单理解成分类就好了.其实我们仔细想一下,生活中的分类简直太多了,衣服可以分为男装和女装,也可以分为上衣和裤子,也可以根据年龄段分类.分类无处不在,分

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

相信很多学php的很多小伙伴都会尝试做一个网上商城作为提升自己技术的一种途径.各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限级分类列表的制作了. 什么是无限级分类? 无限级分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限级分类,将其简单理解成分类就好了.其实我们仔细想一下,生活中的分类简直太多了,衣服可以分为男装和女装,也可以分为上衣和裤子,也可以根据年龄段分类.分类无处不在,分类显得“无限”.我这里就不说无限分类的必要性了. 无限级分类原理简介 无限分类看

PHP_递归实现无限级分类

<?php /** * 递归方法实现无限级别分类 * @param array $list 要生成树形列表的数组[该数组中必须要有主键id 和 父级pid] * @param int $pid=0 父级id * @param int $level=0 缩进次数[用于指定分类名称要缩进的数量] */ function getTree($list,$pid=0,$level=0 ) { // static 表示声明一个静态变量, 静态变量在函数中会一直保存它的值 static $tree = arr

.net mvc DropDownList 下拉框_无限级分类

1.数据库设计: id:int name:string pid:int  //父级id(顶级菜单默认为0) 2.Controller: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcTest.Models; namespace MvcTest.Controllers { [ValidateInput(false)

php之利用递归写无限极分类

<?php //无限极分类 //parent 的值,是该栏目的父栏目的id 反之是 /*0 安徽 合肥 北京 海淀 中关村 上地 河北 石家庄 */ $area = array( array('id'=>1,'name'=>'安徽','parent'=>0), array('id'=>2,'name'=>'北京','parent'=>0), array('id'=>3,'name'=>'海淀','parent'=>2), array('id'=&