Rumah  >  Soal Jawab  >  teks badan

Masalah pengulangan PHP, sila bantu

已经有数据
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    
)


给你一个大大的么么给你一个大大的么么2527 hari yang lalu1036

membalas semua(3)saya akan balas

  • 易风课堂

    易风课堂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.

    balas
    1
  • 给你一个大大的么么

    Terima kasih, saya menambahkan & dalam getAllID($uid) getAllID(&$uid) akan melakukan silap mata.

    给你一个大大的么么 · 2017-11-20 10:05:45
  • 给你一个大大的么么

    给你一个大大的么么2017-11-17 14:51:05

    Bolehkah anda membantu saya?

    balas
    1
  • Batalbalas