PHP中的无限级分类

<?php



/*燕十八 公益PHP培训  

课堂地址:YY频道88354001  

学习社区:www.zixue.it */

		$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 tree($arr,$id,$level=1){

			static $subtree=array();//定义一个静态变量,用于存放取回来的值	

			foreach($arr as $val){//循环数组

				if($val['parent']==$id){//判断父的id与传入的id相匹配

					$val['level']=$level;//定义一个等级

					$subtree[]=$val;//将取到的值追加到数组里

					tree($arr,$val['id'],$lev=$level+1);//递归调用tree函数

					

				}

			}

			return $subtree;//返回结果

		}		

		$res=tree($area,0);

		foreach($res as $key=>$val){

			echo '|'.str_repeat("---",($val['level']*3)).$val['name'].'<br/>';//连续打印结果

		}



	/*结果如下:



	|---------安徽

	|------------------淮北

	|---------------------------濉溪县

	|---------北京

	|------------------海淀

	|---------------------------上地

	|------------------昌平

	|------------------朝阳

	*/

		

 

你可能感兴趣的:(PHP)