2010-02-19 8 views
1

J'ai une fonction qui est appelée dans une boucle foreach et qui prend deux paramètres, un entier, représentant le nombre de fois que la boucle a été exécutée et un tableau (sans taille fixe).PHP - Obtenir une position dans une boucle

Je voudrais retourner la valeur de la clé de tableau qui est égale au compteur. Par exemple, si le tableau a quatre éléments: A, B, C et D et que le compteur est égal à 2, il renvoie B. Cependant, j'essaie d'obtenir le même résultat si le compteur est égal à 6, 10, 14, 38, 3998 etc etc

Existe-t-il un moyen simple d'y parvenir?

Un conseil apprécié.

Merci.

+1

Avez-vous un code pour nous montrer? Tout ce que vous avez essayé et est resté coincé? –

+0

Pouvez-vous clarifier ce que vous essayez de demander? La phrase "Je voudrais retourner la position avec dans la position du compteur dans un compte du paramètre tableau" n'a aucun sens pour moi. –

Répondre

1
<?php 

function foo($position, array $array) 
{ 
    return $array[$position % count($array)]; 
} 

foreach ($array as $i => $whatever) { 
    $foo = foo($i, $whatever); 
} 

Remarque: Je suppose que vous êtes en boucle sur un tableau de tableaux, et en passant que votre fonction. Si ce n'est pas le cas, passez simplement le tableau que vous voulez passer au lieu de $.

+0

Yup, c'est ce que j'ai compris qu'il veut faire, aussi – Gordon

0

Si vous utilisez cette fonction juste à itérer sur le tableau, vous pouvez également faire

$iterator= new LimitIterator(      // will limit the iterations 
       new InfiniteIterator(    // will restart on end 
        new ArrayIterator(    // allows array iteration 
         array('A','B', 'C', 'D'))), // the array to iterate over 
     0, 20);          // start offset and iterations 

foreach($iterator as $value) { 
    echo $value; // outputs ABCDABCDABCDABCDABCD 
} 
Questions connexes