Problème de récursion PHP, aidez s'il vous plaît
给你一个大大的么么
给你一个大大的么么 2017-11-17 11:37:06
0
3
1060
已经有数据
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    
)


给你一个大大的么么
给你一个大大的么么

répondre à tous(2)
易风课堂

Parce que vous utilisez une variable globale, elle ne sera pas détruite pendant tout le processus d'exécution du programme. Généralement, il apparaîtra lorsque vous appellerez cette méthode dans un morceau de code. Si elle n'est appelée qu'une seule fois dans la page, il n'y a aucun problème à écrire ainsi.

Vous pouvez changer d'avis et modifier l'appel récursif ci-dessous. Essayez de ne pas utiliser de variables globales. Ici, vous pouvez utiliser directement une variable de tableau pour la gérer.

  • répondre Merci, j'ai ajouté un & dans getAllID($uid) getAllID(&$uid) fera l'affaire.
    给你一个大大的么么 auteur 2017-11-20 10:05:45
给你一个大大的么么

Pouvez-vous m'aider s'il vous plaît ? Je suis coincé au travail depuis longtemps

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal