递归查找祖先和子孙

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/toume/article/details/78191768

    /-**
     * 查找祖先(给个id,找出他上面的父亲)
     * 
     *-/

    public function findParent($id,$ ancestor){
        
        static $parent=array();
        
        foreach($ ancestor as $v){
            //从小到大 排列
            if($v["id"]==$id){
                $parent[]=$v;
                
                if($v["parent_id"] > 0){
                    $this->findParent($v["parent_id"],$ ancestor);
                }
            }
        }
        
        return $parent;
    }
   //查找所有的用户信息
$members  = M('member')->select();
print_r($this-> findParent($id, $members ));//$id是查找的起点;

    
    /-**
     * 查找子孙(给个父id,找出他下面的子孙)
     * 
     *-/
    
 public function findChild($pid=0,$lev=1,$ descendant){
        static $child=array();
        
        foreach($this->area as $v){
            if($v["parent_id"]==$pid){
                
                $v["lev"]=$lev;
                $child[]=$v;
                $this->findChild2($v["id"],$lev+1,$ descendant);
            }
        }
        
        return $child;
    }
     
}


   
$members  = M('member')->select();
print_r($this->f findChild($id,null,$members ));//$id是查找的起点;
    

猜你喜欢

转载自blog.csdn.net/toume/article/details/78191768