НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗ppSpOtLO 74 of 83 menu

Оптимизация цикличных операций в PHP

Даже легкая операция, многократно повторенная в цикле, может отнять много ресурсов.

Давайте посмотрим на примере. Пусть у нас дан некоторый массив:

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

Давайте найдем среднее от элементов этого массива. Для этого нужно найти сумму элементов и поделить ее на количество. Пусть некий программист уже решил эту задачу следующим образом:

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

Давайте рассмотрим проблемы такого решения. Технически код работает верно и дает верный ответ. Дело в том, что математически корректно как делить всю сумму на количество, так и делить каждое из слагаемых на количество.

Однако, возникает другая проблема. Дело в том, что мы будем выполнять деление столько раз, сколько элементов в нашем массиве. И получается, что мы делаем большое количество лишних операций, ведь деление можно было бы выполнить в конце - один раз, поделив всю найденную сумму.

Давайте оптимизируем наш код:

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

Оптимизируйте приведенный ниже код:

<?php for ($i = 1; $i <= 31; $i++) { if ($i === date('d')) { echo "<b>$i</b><br>"; } if ($i !== date('d')) { echo "$i<br>"; } } ?>
Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить