Lors d'une boucle sur plusieurs tableaux à l'aide de boucles foreach imbriquées, il est important d'éviter le piège de parcourir tous les éléments du deuxième tableau pour chaque élément du premier tableau. Cela conduit à des résultats incorrects.
1. Méthode array_map() (PHP >=5.3)
array_map() vous permet de transmettre plusieurs tableaux comme arguments et de les parcourir simultanément.
array_map(function($v1, $v2){ echo $v1 . "<br>"; echo $v2 . "<br><br>"; }, $data1, $data2);
2 . Méthode MultipleIterator (PHP >=5.3)
Créez un MultipleIterator et attachez des objets ArrayIterator pour chaque tableau que vous souhaitez parcourir.
$it = new MultipleIterator(); $it->attachIterator(new ArrayIterator($data1)); $it->attachIterator(new ArrayIterator($data2)); foreach($it as $a) { echo $a[0] . "<br>"; echo $a[1] . "<br><br>"; }
3. Boucle for avec compteur (PHP >=4.3)
Utilisez une boucle for avec une variable de compteur comme clé pour les deux tableaux.
$keysOne = array_keys($data1); $keysTwo = array_keys($data2); $min = min(count($data1), count($data2)); for($i = 0; $i < $min; $i++) { echo $data1[$keysOne[$i]] . "<br>"; echo $data2[$keysTwo[$i]] . "<br><br>"; }
4. Méthode array_combine() (PHP >=5.0)
Si les tableaux ont des valeurs uniques, utilisez array_combine() pour les combiner en une paire clé-valeur, où $data1 est la clé et $data2 est la valeur.
foreach(array_combine($data1, $data2) as $d1 => $d2) { echo $d1 . "<br>"; echo $d2 . "<br><br>"; }
5. Méthode call_user_func_array() (PHP >=5.6)
Pour parcourir plus de deux tableaux ou un nombre inconnu de tableaux, utilisez array_map() avec call_user_func_array().
$func = function(...$numbers){ foreach($numbers as $v) echo $v . "<br>"; echo "<br>"; }; call_user_func_array("array_map", [$func, $data1, $data2]);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!