⊗ppSpOtLAC 75 of 83 menu

Zbytečné výpočty délky pole v cyklu v PHP

Mějme nějaké pole s čísly:

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

Udělejme, aby byl každý prvek pole umocněn na druhou. To znamená, že nám musí zůstat stejné pole $arr, ale s čtverci čísel.

V takovém případě cyklus foreach není vhodný, ale je potřeba obyčejný cyklus for přes pole, takto:

<?php $arr = [1, 2, 3, 4, 5]; for ($i = 0; $i < count($arr); $i++) { $arr[$i] = $arr[$i] * $arr[$i]; // měníme každý prvek pole } var_dump($arr); ?>

Co je špatně na tomto kódu? Problém je, že count($arr) se bude zbytečně vypočítávat při každé iteraci cyklu! Proč, vždyť délka pole se v cyklu nemění, že?

Pro optimalizaci vypočteme délku pole do samostatné proměnné:

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

Optimalizujte níže uvedený kód:

<?php $arr = [1, 2, 2, 4, 5]; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i - 1] === $arr[$i]) { echo $arr[$i] . '<br>'; } } ?>
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout