boucle

Benchmark : For ou Foreach ?

Quelle est la manière d'itérer le plus rapidement

Date de publication : 2008-12-08

For ou Foreach, une bonne question ça :D
Le code du benchmark :


<?php
$arr = array (
'tila',
'tequila',
'pamela',
'claudia',
'shakira'
);
$start=time()+microtime();
for ($j=0;$j<1000;$j++)
{
foreach ($arr as $v)
{
$v;
}
}
var_dump(time()+microtime()-$start);
$start=time()+microtime();
$countArr=count($arr);
for ($j=0;$j<1000;$j++)
{

for($i=0;$i<$countArr;$i++)
{
$arr[$i];
}
}
var_dump(time()+microtime()-$start);
?>

Résultats :


Foreach : 1.709 ms
For : 1.944 ms

Le grand vainqueur est donc le Foreach. Le retard du For est sans doute dut à la fonction count mais j'ai encore pas trouver le moyen de faire un for sans count :D.

Image : Avlxyz

 
 

b1n@sp1n