Rumah > Soal Jawab > teks badan
已经有数据 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 )
易风课堂2017-11-17 21:15:56
Oleh kerana anda menggunakan pembolehubah global, ia tidak akan dimusnahkan semasa keseluruhan proses menjalankan program. Secara amnya, ia akan muncul apabila anda memanggil kaedah ini dalam sekeping kod Jika ia hanya dipanggil sekali dalam halaman, tiada masalah dalam penulisan seperti ini.
Anda boleh mengubah fikiran anda dan menukar panggilan rekursif di bawah. Cuba jangan gunakan yang global Di sini, anda boleh terus menggunakan pembolehubah tatasusunan untuk mengendalikannya.