首页 > 其他 > 详细

找子孙树

时间:2015-02-06 01:53:39      阅读:267      评论:0      收藏:0      [点我收藏+]
$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 subtree($arr,$id=0,$lev=1) { 
    static $subs = array(); // 子孙数组 
    foreach($arr as $v) { 
        if($v[‘parent‘] == $id) { 
            $v[‘lev‘] = $lev; 
            $subs[] = $v; // 举例说找到array(‘id‘=>1,‘name‘=>‘安徽‘,‘parent‘=>0), 
            subtree($arr,$v[‘id‘],$lev+1); 
        } 
    } 
    return $subs; 
} 
// print_r(subtree($area,0,1)); 
*/ 
function subtree($arr,$id=0,$lev=1) { 
    $subs = array(); // 子孙数组 
    foreach($arr as $v) { 
        if($v[‘parent‘] == $id) { 
            $v[‘lev‘] = $lev; 
            $subs[] = $v; // 举例说找到array(‘id‘=>1,‘name‘=>‘安徽‘,‘parent‘=>0), 
            $subs = array_merge($subs,subtree($arr,$v[‘id‘],$lev+1)); 
        } 
    } 
    return $subs; 
} 
$tree = subtree($area,0,1); 
foreach($tree as $v) { 
    echo str_repeat(‘&nbsp;&nbsp;‘,$v[‘lev‘]),$v[‘name‘],‘<br />‘; 
} 

 

找子孙树

原文:http://www.cnblogs.com/zzg521/p/4276231.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!