php学习笔记六--无限级分类、递归转义

无限级分类应用:

1 找指定栏目的子孙栏目

2 找指定栏目的父栏目、父父栏目

<?php
echo '<meta charset="UTF-8">';
//无限级分类
	$area = array(
	array('id'=>1,'name'=>'安徽','parent'=>0),
	array('id'=>2,'name'=>'海淀','parent'=>7),
	array('id'=>3,'name'=>'濉溪县','parent'=>5),
	array('id'=>4,'name'=>'昌平','parent'=>7),
	array('id'=>5,'name'=>'淮北','parent'=>1),
	array('id'=>6,'name'=>'朝阳','parent'=>7),
	array('id'=>7,'name'=>'北京','parent'=>0),
	array('id'=>8,'name'=>'上地','parent'=>2),
	);
	
	//查找子孙栏目
	function findSun($arr,$id){
		$sons = array();
		foreach($arr as $v){
			if($v['parent']==$id){
				$sons[] = $v;
			}
		}
		return $sons;
	}
	//查找子孙树
	function subTree($arr,$id=0,$lev=1){
		static $subs = array();
		foreach($arr as $v){
			if($v['parent']==$id){
				$v['lev']=$lev;
				$subs[] = $v;
				 subTree($arr,$v['id'],$lev+1); 
			}
		}
		return $subs;
	}
	/*
	//打印子孙树
	$tree = subTree($area,0);
	foreach($tree as $k=>$v){
		echo str_repeat('&nbsp;&nbsp;',$v['lev']),$v['name'],'<br/>';
	}
	*/
	//查找父栏目
	function familyTree($arr,$id){
		static $tree = array();
		foreach($arr as $v){
			if($v['id']==$id){
				
				if($v['parent']>0){
					familyTree($arr,$v['parent']);
				}
				$tree[] = $v;
			}
		}
		return $tree;
	}
	
	print_r(familyTree($area,8));
	
	
?>

递归转义:

<?php
	//递归转义
	function _addslashes($arr){
		foreach($arr as $k=>$v){
			if(is_string($v)){
				$arr[$k]=addslashes($v);
			}else if(is_array($v)){
				$arr[$k]=_addslashes($v);
			}
		}
		return $arr;
	}
?>


转载于:https://my.oschina.net/wigan/blog/511242

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值