找子孙树

$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 />‘;
} 
时间: 2024-08-07 08:25:46

找子孙树的相关文章

无限级分类查找--子孙树,家谱树

无限级分类查找 $area=array(array('id'=>1,'name'=>'北京','parent'=>0),array('id'=>2,'name'=>'昌平','parent'=>1),array('id'=>3,'name'=>'海淀','parent'=>2),array('id'=>4,'name'=>'天津市','parent'=>0),array('id'=>5,'name'=>'市辖区','par

无限级分类之查找子孙树和家谱树

子孙树是用递归查找指定栏目的所有子类,以及子类的子类,查找家谱树是查找制定栏目的父类和父类的父类,一致到顶级类 <?php $area=array( array('id'=>'1','name'=>'河南','parent'=>0), array('id'=>'2','name'=>'吉林','parent'=>0), array('id'=>'3','name'=>'北京','parent'=>0), array('id'=>'4','n

无限极分类php实现—查子孙树、家谱树

<?php // 无限级分类中,查家谱树 $area = array( 0=>array('cat_id'=>1,'cat_name'=>'北京市','parent_id'=>0), 1=>array('cat_id'=>2,'cat_name'=>'馆陶县','parent_id'=>5), 2=>array('cat_id'=>3,'cat_name'=>'海淀区','parent_id'=>1), 3=>array(

找家谱树(递归跟迭代)

递归找家谱树<?php header("Content-type:text/html;charset=utf-8"); /* ** 递归查找家谱树 */ $area = array( array('id'=>1,'name'=>'安徽','parent'=>0), array('id'=>2,'name'=>'海淀','parent'=>7), array('id'=>3,'name'=>'濉溪县','parent'=>5),

无限极分类中,查找子孙树

<?php // 无限级分类中,查找子树树 $area = array( 0=>array('cat_id'=>1,'cat_name'=>'北京市','parent_id'=>0), 1=>array('cat_id'=>2,'cat_name'=>'馆陶县','parent_id'=>5), 2=>array('cat_id'=>3,'cat_name'=>'海淀区','parent_id'=>1), 3=>array

无极分类之子孙树、父辈树

<?php function subTree($arr, $id=0, $depth=0) { static $tree = array(); foreach ($arr as $key=>$value) { if($value['father_id'] == $id) { $value['depth'] = $depth; $tree[] = $value; subTree($arr, $value['id'], $depth+1); //tree($arr, $value['id'],$d

无限级分类之查找子孙树

1 <?php 2 header("Content-Type:text/html;charset=utf-8"); 3 $cate=array( 4 array('id'=>1,'name'=>'html','parent'=>0), 5 array('id'=>2,'name'=>'javascript','parent'=>0), 6 array('id'=>3,'name'=>'div+css','parent'=>0)

无限极分类之查找子孙树

1 <?php 2 3 header('content-type:text/html;charset=utf8'); 4 $area = array( 5 array('id'=>1,'name'=>'安徽','parent'=>0), 6 array('id'=>2,'name'=>'海淀','parent'=>7), 7 array('id'=>3,'name'=>'濉溪县','parent'=>5), 8 array('id'=>4,

夺命雷公狗---无限级分类NO7

<?php header("Content-Type:text/html;charset=utf-8"); $aarr = array( array('id'=>1,'name'=>'安徽','pid'=>0), array('id'=>2,'name'=>'海淀','pid'=>7), array('id'=>3,'name'=>'浣溪县','pid'=>5), array('id'=>4,'name'=>'昌平