php递归1到9,php递归方法 - osc_fpjb1wqe的个人空间 - OSCHINA - 中文开源技术交流社区...

header("Content-type:text/html;charset=utf-8");

$city=array(

array('id'=>1,'name'=>'北京',"pid"=>0),

array('id'=>2,'name'=>'广东',"pid"=>0),

array('id'=>3,'name'=>'海淀区',"pid"=>1),

array('id'=>4,'name'=>'昌平区',"pid"=>1),

array('id'=>5,'name'=>'上地',"pid"=>3),

array('id'=>6,'name'=>'西二旗',"pid"=>3),

array('id'=>7,'name'=>'回龙观',"pid"=>4),

array('id'=>8,'name'=>'霍营',"pid"=>4),

array('id'=>9,'name'=>'深圳',"pid"=>2),

array('id'=>10,'name'=>'广州',"pid"=>2),

array('id'=>11,'name'=>'福田',"pid"=>9),

array('id'=>12,'name'=>'南山',"pid"=>9),

);

/*

$res=array(

array('id'=1,'name'=>'北京',"pid"=>0),

array('id'=3,'name'=>'海淀区',"pid"=>1),

array('id'=5,'name'=>'上地',"pid"=>3),

array('id'=6,'name'=>'西二旗',"pid"=>3),

array('id'=4,'name'=>'昌平区',"pid"=>1),

array('id'=7,'name'=>'回龙观',"pid"=>4),

array('id'=8,'name'=>'霍营',"pid"=>4),

array('id'=2,'name'=>'广东',"pid"=>0),

array('id'=9,'name'=>'深圳',"pid"=>2),

array('id'=11,'name'=>'福田',"pid"=>9),

array('id'=12,'name'=>'南山',"pid"=>9),

array('id'=10,'name'=>'广州',"pid"=>2),

);

*/

function tree($arr,$pid=0){

static $res=array();

foreach($arr as $v){

if($v['pid']==$pid){

//说明找到,先保存,继续递归查找

$res[]=$v;

tree($arr,$v['id']);

}

}

return $res;

}

echo "

";

var_dump($city);

echo "


";

$result=tree($city);

var_dump($result);

*********************************************************************************************************

在模型类中的使用情形:

/**

* @param array $arr [要排序的数组]

* @param integer $pid [父id]

* @return array [排序好的数组]

*/

public function tree($arr,$pid=0,$level=0){

static $res=array();

foreach($arr as $v){

if($v['pid']==$pid){

//说明找到,先保存,然后在递归查找

$v['level']=$level;

$res[]=$v;

$this->tree($arr,$v['cat_id'],$level+1);

}

}

return $res;

}

436bd5e8bc9cfd1f00954fc9c56869c7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值