⊗ppSpOtEI 76 of 83 menu

Optymalizacja zbędnych przejść pętli w PHP

W następującym kodzie pewien programista sprawdza, czy w tablicy znajduje się liczba 3:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $exists = false; foreach ($arr as $elem) { if ($elem == 3) { $exists = true; } } var_dump($exists); ?>

Co jest nie tak z jego rozwiązaniem? Wydaje się, że żadnych zbędnych operacji w pętli nie wykonuje. Problem jednak polega na tym, że po tym, jak ustalono, że liczba 3 znajduje się w tablicy - pętla i tak kręci się dalej do końca tablicy.

Nieracjonalne będzie najbardziej, jeśli liczba 3 zostanie znaleziona gdzieś na początku tablicy, a sama tablica będzie miała długość, powiedzmy, 1000 elementów. Okaże się, że tysiąc bezużytecznych, zbędnych iteracji pętli! Nieoptymalnie.

Zoptymalizujmy kod, zatrzymując pętlę w odpowiednim momencie:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $exists = false; foreach ($arr as $elem) { if ($elem == 3) { $exists = true; break; } } var_dump($exists); ?>

Następujący kod oblicza, ile elementów tablicy trzeba zsumować, aby suma stała się większa niż 10. Wykonaj optymalizację:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $sum = 0; $i = 1; foreach ($arr as $elem) { $sum += $elem; if ($sum <= 10) { $i++; } } echo $i; ?>

Następujący kod wypisuje liczby parzyste z zadanego przedziału. Wykonaj optymalizację:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0) { echo $i; } } ?>

Następujący kod wypisuje liczby które dzielą się jednocześnie przez 2 i przez 3. Wykonaj optymalizację:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć