欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php 递归的问题

程序员文章站 2024-02-20 17:34:46
...
php分类递归递归的问题
function arrayPidProcess($data,$res=array(),$pid='0',$endlevel='1'){
foreach ($data as $k => $v){
if($v['pid']==$pid){
$res[$v['id']]['info']=$v;
if($endlevel!='0'){
if($v['level']==$endlevel){
$child=null;
}
else{
$child=arrayPidProcess($data,array(),$v['id'],$endlevel);
}
$res[$v['id']]['child']=$child;
}
else{
$child=arrayPidProcess($data,array(),$v['id']);
if($child==''||$child==null){
$res[$v['id']]['child']=null;
}
else{
$res[$v['id']]['child']=$child;
}
}

}
}
return $res;
}
$arr = array(
array('id'=>1, 'name'=>'c', 'pid'=>0, 'level'=>1),
array('id'=>2, 'name'=>'a', 'pid'=>0, 'level'=>1),
array('id'=>3, 'name'=>'v', 'pid'=>1, 'level'=>2),
array('id'=>4, 'name'=>'q', 'pid'=>3, 'level'=>3),
array('id'=>5, 'name'=>'w', 'pid'=>4, 'level'=>4),
array('id'=>6, 'name'=>'e', 'pid'=>5, 'level'=>5),
array('id'=>7, 'name'=>'r', 'pid'=>0, 'level'=>1),
array('id'=>8, 'name'=>'t', 'pid'=>0, 'level'=>1),
array('id'=>9, 'name'=>'y', 'pid'=>0, 'level'=>1),
array('id'=>10, 'name'=>'u', 'pid'=>0, 'level'=>1),
array('id'=>11, 'name'=>'i', 'pid'=>0, 'level'=>1),
);
print_r(arrayPidProcess($arr));

php 递归的问题 5189da8f95634.jpg!550xauto.jpg ( 453.25 KB 下载:175 次 )

AD:真正免费,域名+虚机+企业邮箱=0元