9
votes

Comment combinez-vous deux boucles de foresach en un

La langue est PHP. J'ai un pourcheach ($ A comme $ b) et un autre pourcheach ($ C comme $ d => e $ e). Comment puis-je les combiner pour lire comme une. Je suis fatigué foreach (($ A comme $ b) && ($ c comme $ d => $ e)), mais c'est des ordures.


0 commentaires

4 Réponses :


0
votes

Cela fera ce que vous voulez, je pense. Il fera progresser les deux tableaux de manière égale à la fois tout au long de votre boucle. Vous pouvez toujours pause code> manuellement si $ C code> est une taille différente que $ A code> et vous devez casser la logique basée sur la taille de la matrice:

foreach($a as $b)
{
    list($d,$e) = each($c);
    //continue on with $b, $d and $e all set
}


0 commentaires

3
votes

Je ne comprends pas ce que vous essayez de faire. Si vous souhaitez les atteindre un après l'autre, utilisez deux boucles: xxx

si vous souhaitez toutes les combinaisons de $ A et $ C :: xxx

Je suppose que vous pouvez faire quelque chose comme: xxx

mais je ne le conseillerais pas nécessairement. < / p>


0 commentaires

25
votes

Vous pourriez être intéressé par Multiphatérise de SPL

1 | 11
2 | 12
3 | 13
4 | 14
5 | 15
6 | 16


4 commentaires

C'est la paix du code la plus intéressante que j'ai vue aujourd'hui. Plus un pour ça. Les matrices doivent-elles être de longueur égale ou vous arrêtez-vous d'itération sur l'un d'entre eux à un moment donné?


Cela dépend de si vous définissez le multipendant :: mit_need_any ou multiplexiterator :: mit_need_all drapeau. 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 nuls. Mit_need_all est la valeur par défaut.


Merci d'avoir présenté cette fonctionnalité SPL! Plus un aussi!


Je viens de survenir ceci - on dirait que ceci est pour PHP 5.3.0+. Je cours 5.2.17, y a-t-il une alternative pour cette version de PHP?



10
votes

1) première méthode xxx

ou 2) Deuxième méthode xxx


0 commentaires