已经有数据
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
)
#
因为你使用的是全局变量,它在整个程序的运行过程中,是不会销毁的。一般会在你在一段代码中,调 用该方法时才会出现,如果页面中只调用一次,这样写是没有任何问题的。
你可以换一个思路,把下面的递归一调用改一下。尽量不要使用全局的,在这里,你可以直接使用一个数组变量来处理。
请大家帮帮忙好吗,工作一直卡这很久了