boucle

Benchmark : For ou Foreach ?

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

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