Maison  >  Questions et réponses  >  le corps du texte

Problème de récursion PHP, aidez s'il vous plaît

已经有数据
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 Il y a quelques jours1035

répondre à tous(3)je répondrai

  • 易风课堂

    易风课堂2017-11-17 21:15:56

    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
    1
  • 给你一个大大的么么

    Merci, j'ai ajouté un & dans getAllID($uid) getAllID(&$uid) fera l'affaire.

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

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

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

    répondre
    1
  • Annulerrépondre