已经有数据
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
)
#
因為你使用的是全域變量,它在整個程式的運作過程中,是不會銷毀的。一般會在你在一段程式碼中,調 用該方法時才會出現,如果頁面中只呼叫一次,這樣寫是沒有任何問題的。
你可以換一個思路,把下面的遞歸一呼叫改一下。盡量不要使用全域的,在這裡,你可以直接使用一個陣列變數來處理。
請大家幫忙好嗎,工作一直卡這很久了