¿Cual de estos 3 bucles (foreach | while | for) php es el más rápido? bien, en este artículo vamos a hacer un test para controlar el tiempo de ejecución en segundos, que conseguimos con la función microtime().

En primer lugar, el código php de test:

$numero = 1500000;

// Generamos array
$array = array();
$i = 0;
while($i < $numero) {
  $array[] = $i++;
}

// Foreach
$tiempo = microtime(true);
foreach($array as $a) {
  $numeroulo = $a;
}
$tiempo_final = microtime(true);
$tiempo_foreach = $tiempo_final-$tiempo;
echo number_format($tiempo_foreach, 3, '.', '')
  ." segundos - foreach()\n";

// While
$tiempo = microtime(true);
$i = 0;
$longitud = count($array);
while($i<$longitud) {
  $numeroulo = $array[$i++];
}
$tiempo_final = microtime(true);
$tiempo_while = $tiempo_final-$tiempo;
echo number_format($tiempo_while, 3, '.', '')
  ." segundos - while()\n";

// For
$tiempo = microtime(true);
$longitud = count($array);
for($i=0;$i<$longitud;++$i) {
  $numeroulo = $array[$i];
}
$tiempo_final = microtime(true);
$tiempo_for = $tiempo_final-$tiempo;
echo number_format($tiempo_for, 3, '.', '')
  ." segundos - for()\n";

Y el resultado es:

0.139 segundos – foreach()
0.194 segundos – while()
0.187 segundos – for()

Podemos decir que el ganador en en cuanto a velocidad es foreach()

Agradezco tu comentario 🤘