PHP 递归问题

已经有数据

id  fid
23  0
27  23
28  23
34  38
33  0
    //getID 是从数据库取出来的,目前 23 和 33 
    foreach ($getID as $k => $v) {
        $allAgentID = getAllID($v);
        print_r($allAgentID);
    }

    function getAllID($uid){
        global $empire,$dbtbpre,$userid;
        $userid[] =$uid ;
        $s= "select userid from {$dbtbpre}enewsmember where fid='".$uid."' and checked=1 order by userid asc";
        $sql=$empire->query($s);
        while($u=$empire->fetch($sql)) {
            getAllID($u[userid]);
        }
        return $userid;
    }

    //输出结果
    Array    
    (    
    [0] => 23    
    [1] => 27    
    [2] => 28    
    [3] => 34    
    )    
    Array    
    (    
    [0] => 23    
    [1] => 27    
    [2] => 28    
    [3] => 34    
    [4] => 33    
    )      

为什么当$v=33的时候没有清空之前的数组,还把之前的数组合并在一起

请问有什么办法能得到以下数组吗?
当$v=23时
Array
(
[0] => 23
[1] => 27
[2] => 28
[3] => 34
)

当$v=33时
Array
(
[4] => 33
)

阅读 1.6k
2 个回答
    function getAllID($uid,$userid = array()){
        global $empire,$dbtbpre;
        $userid[] =$uid ;
        $s= "select userid from {$dbtbpre}enewsmember where fid='".$uid."' and checked=1 order by userid asc";
        $sql=$empire->query($s);
        while($u=$empire->fetch($sql)) {
            getAllID($u[userid], $userid);
        }
        return $userid;
    }

看不懂楼主在说什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题