⊗ppSpOtLAC 75 of 83 menu

Cálculo innecesario de la longitud de un array en un bucle en PHP

Supongamos que tenemos un array con números:

<?php $arr = [1, 2, 3, 4, 5]; ?>

Hagamos que cada elemento del array se eleve al cuadrado. Es decir, debemos obtener el mismo array $arr, pero con los números al cuadrado.

En este caso, el bucle foreach no es adecuado, se necesita un bucle for normal para recorrer el array, así:

<?php $arr = [1, 2, 3, 4, 5]; for ($i = 0; $i < count($arr); $i++) { $arr[$i] = $arr[$i] * $arr[$i]; // cambiamos cada elemento del array } var_dump($arr); ?>

¿Qué está mal con este código? El problema es que count($arr) se calculará innecesariamente en cada iteración del bucle! ¿Por qué?, si la longitud del array no cambia durante el bucle, ¿verdad?

Para optimizar, saquemos el cálculo de la longitud del array a una variable separada:

<?php $arr = [1, 2, 3, 4, 5]; $len = count($arr); // optimizamos for ($i = 1; $i < $len; $i++) { $arr[$i] = $arr[$i] * $arr[$i]; } var_dump($arr); ?>

Optimice el siguiente código:

<?php $arr = [1, 2, 2, 4, 5]; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i - 1] === $arr[$i]) { echo $arr[$i] . '<br>'; } } ?>
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar