⊗ppSpOtLAC 75 of 83 menu

Onnodige berekening van arraylengte in 'n lus in PHP

Laat daar 'n sekere array met getalle gegee word:

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

Kom ons maak dat elke element van die array kwadreer word. Dit beteken ons moet dieselfde array $arr hou, maar met kwadrate van die getalle.

In so 'n geval pas die foreach lus nie, en 'n gewone for lus oor die array word benodig, soos hier:

<?php $arr = [1, 2, 3, 4, 5]; for ($i = 0; $i < count($arr); $i++) { $arr[$i] = $arr[$i] * $arr[$i]; // verander elke element van die array } var_dump($arr); ?>

Wat is fout met hierdie kode? Die probleem is dat count($arr) sinloos elke lus-iterasie bereken sal word! Maar hoekom, aangesien die lengte van die array nie in die lus verander nie, of hoe?

Vir optimalisering, laat ons die berekening van die arraylengte in 'n aparte veranderlike plaas:

<?php $arr = [1, 2, 3, 4, 5]; $len = count($arr); // optimaliseer for ($i = 1; $i < $len; $i++) { $arr[$i] = $arr[$i] * $arr[$i]; } var_dump($arr); ?>

Optimaliseer die kode hieronder:

<?php $arr = [1, 2, 2, 4, 5]; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i - 1] === $arr[$i]) { echo $arr[$i] . '<br>'; } } ?>
Afrikaans
Azə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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp