php 递归的问题

浏览:3054 发布日期:2013/05/08 分类:系统代码
php分类递归递归的问题
<?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));

附件 5189da8f95634.jpg!550xauto.jpg ( 453.25 KB 下载:204 次 )

评论( 相关
后面还有条评论,点击查看>>