2009-11-06 5 views
0
foreach ($a as $b) 
{ 
do function 
} 
+2

for ($ i = 0; $ i <= count ($ a); i ++ $) {$ b = $ a [$ i]; } –

+0

Le nombre suppose la disponibilité d'une méthode de comptage. foreach utilise l'interface d'itérateur qui ne garantit pas une méthode de comptage. –

+2

Pourquoi avez-vous besoin de faire cela? – jmucchiello

Répondre

1
$i = 0; 
while ($i < count($a)) 
{ 
    $b = $a[$i]; 

    //do function 

    $i++; 
} 
+2

Bien, mais le nombre peut ne pas être disponible pour toutes les énumérations. –

+2

aussi, cela suppose que les clés sont des entiers de 0 au compte-1, ce qui n'est pas forcément le cas – newacct

+2

Il serait également plus efficace de placer count() en dehors de la boucle pour empêcher le recomptage du tableau à chaque fois. – BraedenP

5
while ($b.MoveNext()) 
{ 
    $a = $b.Current; 
} 
+1

vous voulez dire' -> 'à la place' .' right? étant donné que cela a été marqué comme * php * –

5
reset($a); 
while (list($key, $value) = each($a)) { 
    //... 
} 

$keys = array_keys($a); 
while (($key = array_shift($keys)) !== NULL)) 
{ 
    $b = $a[$key]; 
}