La langue est PHP. J'ai un foreach ($ a comme $ b) et un autre foreach ($ c comme $ d => $ e). Comment puis-je les combiner pour lire comme un seul. J'ai fatigué foreach (($ a as $ b) & & ($ c comme $ d => $ e)), mais c'est de la foutaise.Comment combiner deux boucles foreach en une
6
A
Répondre
0
Cela fera ce que vous voulez, je pense. Il fera avancer les deux tableaux de manière égale tout au long de votre boucle. Vous pouvez toujours break
manuellement si $c
est une taille différente de celle $a
et vous avez besoin logique de rupture basée sur la taille du tableau:
foreach($a as $b)
{
list($d,$e) = each($c);
//continue on with $b, $d and $e all set
}
each()
fera avancer le pointeur de tableau de $c
à chaque itération.
3
Je ne comprends pas ce que vous essayez de faire. Si vous voulez les atteindre l'un après l'autre il suffit d'utiliser deux boucles:
foreach ($a as $b) { ... }
foreach ($c as $d => $e) { ... }
Si vous voulez toutes les combinaisons de $a
et $c
:
foreach ($a as $b) {
foreach ($c as $d => $e) {
// do stuff
}
}
Je suppose que vous pourriez faire quelque chose comme:
foreach (array_merge($a, $c) as $k => $v) {
...
}
mais je ne le conseillerais pas nécessairement.
22
Vous pourriez être intéressé par SPL's MultipleIterator
par exemple
// ArrayIterator is just an example, could be any Iterator.
$a1 = new ArrayIterator(array(1, 2, 3, 4, 5, 6));
$a2 = new ArrayIterator(array(11, 12, 13, 14, 15, 16));
$it = new MultipleIterator;
$it->attachIterator($a1);
$it->attachIterator($a2);
foreach($it as $e) {
echo $e[0], ' | ', $e[1], "\n";
}
impressions
1 | 11
2 | 12
3 | 13
4 | 14
5 | 15
6 | 16
7
1) Méthode Première
<?php
$FirstArray = array('a', 'b', 'c', 'd');
$SecondArray = array('1', '2', '3', '4');
foreach(array_combine($FirstArray, $SecondArray) as $f => $n) {
echo $f.$n;
echo "<br/>";
}
?>
ou 2) Deuxième méthode
<?php
$FirstArray = array('a', 'b', 'c', 'd');
$SecondArray = array('1', '2', '3', '4');
for ($index = 0 ; $index < count($FirstArray); $index ++) {
echo $FirstArray[$index] . $SecondArray[$index];
echo "<br/>";
}
?>
Questions connexes
- 1. foreach boucles et objets stdclass
- 2. Combiner deux textures en une
- 3. Objet stdClass et boucles foreach
- 4. PHP - Foreach boucles et ressources
- 5. Foreach boucles à l'intérieur foreach boucles me donnant des problèmes dans codeigniter
- 6. boucles foreach imbriquées avec une relation many to many
- 7. MonoTouch - Foreach vs pour les boucles (performance)
- 8. Comment combiner deux ResultSets en Java?
- 9. Exécuter des insertions SQLite dans plusieurs boucles foreach en C#?
- 10. perl foreach boucles de tableau, question simple
- 11. limite et le décalage des boucles foreach
- 12. Comment puis-je combiner deux requêtes mysql en une seule?
- 13. Combiner deux objets dans une
- 14. Comment combiner deux requêtes sql?
- 15. C# Code de simplification Question: Séquentielle Foreach boucles
- 16. Comment combiner deux résultats jQuery
- 17. Comment combiner deux fonctions JQuery
- 18. Comment combiner deux datables ensemble C#
- 19. Combiner deux tableaux sur une clé
- 20. Combiner deux images dont une est transparente
- 21. Combiner deux tables pour une sortie
- 22. en utilisant deux pour les boucles en python
- 23. deux simples boucles Optimize imbriquées
- 24. combiner deux tableaux
- 25. Comment puis-je combiner ce code en une ou deux requêtes LINQ?
- 26. combiner deux liste dans une liste
- 27. Comment combiner deux images mono-couleurs?
- 28. Python: combiner deux scripts en un seul
- 29. Comment combiner des expressions LINQ en une?
- 30. comment puis-je combiner et additionner deux résultats en SQL?
C'est la paix la plus intéressante de code que je l'ai vu aujourd'hui. Plus un pour ça. Est-ce que les tableaux DOIVENT être de même longueur, ou arrêtez-vous d'itérer sur un seul d'entre eux à un moment donné? –
Cela dépend si vous définissez l'indicateur MultipleIterator :: MIT_NEED_ANY ou MultipleIterator :: MIT_NEED_ALL. Avec MIT_NEED_ALL, l'itérateur s'arrête si l'un des itérateurs internes n'a plus d'éléments. Avec MIT_NEED_ANY, l'itérateur continue tant qu'au moins un itérateur interne a un autre élément, tous les autres éléments deviennent NULL. MIT_NEED_ALL est la valeur par défaut. – VolkerK
Merci pour l'info, très cool! –