⊗ppSpOtLAC 75 of 83 menu

Cálculo desnecessário do comprimento de um array em um loop em PHP

Suponha que tenhamos um array com números:

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

Vamos fazer com que cada elemento do array seja elevado ao quadrado. Ou seja, devemos manter o mesmo array $arr, mas com os números ao quadrado.

Neste caso, o loop foreach não é adequado, sendo necessário um loop for comum pelo array, assim:

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

O que há de errado com este código? O problema é que count($arr) será calculado desnecessariamente a cada iteração do loop! Por quê? Afinal, o comprimento do array não muda dentro do loop, certo?

Para otimizar, vamos colocar o cálculo do comprimento do array em uma variável separada:

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

Otimize o código abaixo:

<?php $arr = [1, 2, 2, 4, 5]; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i - 1] === $arr[$i]) { echo $arr[$i] . '<br>'; } } ?>
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar