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
<?php for ($i=1;$i<=10000;$i++) {$j=$array[$i];} ?>
Durée: 0.04171 s, Vitesse: 23972794 instructions par seconde
TEST 2 --- while list
<?php while(list($k,$v)=each($array)) {$j=$v;} ?>
Durée: 0.31395 s, Vitesse: 3185261 instructions par seconde
TEST 3 --- foreach
<?php foreach($array as $k=>$v) {$j=$v;} ?>
Durée: 0.04041 s, Vitesse: 24744572 instructions par seconde
TEST 4 --- foreach
<?php foreach($array as $v) {$j=$v;} ?>
Durée: 0.03936 s, Vitesse: 25409706 instructions par seconde
sizeof($array) = 5
Nb parcours = 200000
TEST 5 --- for... soyons fou! :-D
<?php for ($i=1;$i<=5;$i++) {$j=$array[$i];} ?>
Durée: 0.08949 s, Vitesse: 11174798 instructions par seconde
TEST 6 --- while list
<?php while(list($k,$v)=each($array)) {$j=$v;} ?>
Durée: 0.3692 s, Vitesse: 2708589 instructions par seconde
TEST 7 --- foreach
<?php foreach($array as $k=>$v) {$j=$v;} ?>
Durée: 0.05208 s, Vitesse: 19202315 instructions par seconde
TEST 8 --- foreach
<?php foreach($array as $v) {$j=$v;} ?>
Durée: 0.04367 s, Vitesse: 22899547 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.