while (list($key,$value) = each($array)) ou foreach ?
$array['key'] - $array[key]str_replace : plusieurs appels ou avec des tableaux ?file_exists ou is_file ?while (list($key,$value) = each($array)) ou foreach ?sizeof($array) = 10000
Nb parcours = 100
TEST 1 --- for... soyons fou! :-D
<? for ($i=1;$i<=10000;$i++) {$j=$array[$i];} ?>
Durée: 0.14661 s, Vitesse: 6820905 instructions par seconde
TEST 2 --- while list
<? while(list($k,$v)=each($array)) {$j=$v;} ?>
Durée: 0.80789 s, Vitesse: 1237798 instructions par seconde
TEST 3 --- foreach
<? foreach($array as $k=>$v) {$j=$v;} ?>
Durée: 0.15339 s, Vitesse: 6519120 instructions par seconde
TEST 4 --- foreach
<? foreach($array as $v) {$j=$v;} ?>
Durée: 0.1163 s, Vitesse: 8598533 instructions par seconde
sizeof($array) = 5
Nb parcours = 200000
TEST 5 --- for... soyons fou! :-D
<? for ($i=1;$i<=5;$i++) {$j=$array[$i];} ?>
Durée: 0.2619 s, Vitesse: 3818283 instructions par seconde
TEST 6 --- while list
<? while(list($k,$v)=each($array)) {$j=$v;} ?>
Durée: 0.94203 s, Vitesse: 1061538 instructions par seconde
TEST 7 --- foreach
<? foreach($array as $k=>$v) {$j=$v;} ?>
Durée: 0.19219 s, Vitesse: 5203128 instructions par seconde
TEST 8 --- foreach
<? foreach($array as $v) {$j=$v;} ?>
Durée: 0.14872 s, Vitesse: 6723958 instructions par seconde
Parfois c'est utile d'être fou ;-) Lorsque le tableau est un banal
$array[0]=...
$array[1]=...
$array[i]=...;
Le for est plus rapide si le tableau est volumineux.
Le while list est le grand perdant de ce test. Son seul avantage semble d'utiliser
moins de mémoire que le foreach mais c'est tout.
Le foreach consomme plus de mémoire mais est plus rapide pour des petits tableaux.
Ceci s'explique puisque le foreach doit instantier $key et $value, ce qui est très rapide
pour des petits tableaux, mais qui peut devenir une perte de temps pour une grande quantité de données.
Pour le as $key=>$value, si $key n'est pas utilisé il faut l'enlever pour gagner de
la vitesse.