⊗ppSpOtLAC 75 of 83 menu

Излишно изчисляване на дължината на масив в цикъл в PHP

Нека е даден някакъв масив с числа:

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

Нека направим така, че всеки елемент на масива да бъде повдигнат на квадрат. Тоест трябва да остане същият масив $arr, но с квадратите на числата.

В такъв случай цикълът foreach не е подходящ, а е необходим обикновен цикъл for по масива, ето така:

<?php $arr = [1, 2, 3, 4, 5]; for ($i = 0; $i < count($arr); $i++) { $arr[$i] = $arr[$i] * $arr[$i]; // променяме всеки елемент от масива } var_dump($arr); ?>

Какво не е наред с този код? Проблемът е, че count($arr) безсмислено ще се изчислява при всяка итерация на цикъла! Защо, ведь дължината на масива в цикъла не се променя, нали?

За оптимизация ще изнесем изчислението на дължината на масива в отделна променлива:

<?php $arr = [1, 2, 3, 4, 5]; $len = count($arr); // оптимизираме for ($i = 1; $i < $len; $i++) { $arr[$i] = $arr[$i] * $arr[$i]; } var_dump($arr); ?>

Оптимизирайте дадения по-долу код:

<?php $arr = [1, 2, 2, 4, 5]; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i - 1] === $arr[$i]) { echo $arr[$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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне