⊗ppSpOtLO 74 of 83 menu

Optimalizace cyklických operací v PHP

I lehká operace, která se mnohokrát opakuje v cyklu, může spotřebovat mnoho prostředků.

Podívejme se na příklad. Předpokládejme, že máme dané nějaké pole:

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

Nalezněme průměr prvků tohoto pole. K tomu je potřeba najít součet prvků a vydělit jej jejich počtem. Předpokládejme, že nějaký programátor již tento úkol vyřešil následujícím způsobem:

<?php $sum = 0; foreach ($arr as $elem) { $sum += $elem / count($arr); } echo $sum; ?>

Podívejme se na problémy takového řešení. Technicky kód funguje správně a dává správnou odpověď. Jde o to, že matematicky je korektní jak vydělit celý součet počtem, tak vydělit každý sčítanec počtem.

Vzniká však jiný problém. Jde o to, že budeme provádět dělení tolikrát, kolik je prvků v našem poli. A vychází, že děláme velké množství nadbytečných operací, protože dělení bychom mohli provést až na konci - jednou, vydělením celého nalezeného součtu.

Optimalizujme náš kód:

<?php $sum = 0; foreach ($arr as $elem) { $sum += $elem; } echo $sum / count($arr); ?>

Optimalizujte níže uvedený kód:

<?php for ($i = 1; $i <= 31; $i++) { if ($i === date('d')) { echo "<b>$i</b><br>"; } if ($i !== date('d')) { echo "$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