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

Ненужное вычисление длины массива в цикле в PHP

Пусть дан некоторый массив с числами:

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

Давайте сделаем так, чтобы каждый элемент массива возвелся квадрат. To есть у нас должен остаться тот же массив $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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить