⊗ppSpOtEI 76 of 83 menu

Optimalisatie van overbodige loopiteraties in PHP

In de volgende code controleert een programmeur of het getal 3 in de array aanwezig is:

<?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); ?>

Wat is er mis met zijn oplossing? Het lijkt erop dat er geen overbodige operaties in de loop worden uitgevoerd. Het probleem is echter dat nadat vastgesteld is dat het getal 3 in de array zit - de loop toch blijft doordraaien tot het einde van de array.

Het minst efficiënt zou zijn als het getal 3 ergens aan het begin van de array wordt gevonden, terwijl de array zelf bijvoorbeeld 1000 elementen lang is. Dat resulteert in duizend nutteloze, overbodige iteraties van de loop! Niet optimaal.

Laten we de code optimaliseren door de loop op tijd te stoppen:

<?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); ?>

De volgende code berekent hoeveel elementen van de array opgeteld moeten worden, voordat de som groter wordt dan 10. Voer de optimalisatie uit:

<?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; ?>

De volgende code geeft even getallen weer uit een opgegeven bereik. Voer de optimalisatie uit:

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

De volgende code geeft getallen weer die tegelijkertijd deelbaar zijn door 2 en door 3. Voer de optimalisatie uit:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren