⊗ppSpOtAC 83 of 83 menu

Optimalisatie van conversie naar array in PHP

Het is niet altijd nodig een string in een array op te splitsen om er iets mee te doen.

Laten we een voorbeeld bekijken. In het volgende voorbeeld controleert de code-auteur of de string het cijfer 3 bevat:

<?php $str = '12345'; $arr = explode('', $str); // splits in een array if (in_array(3, $arr)) { echo 'aanwezig'; } else { echo 'afwezig'; } ?>

De auteur is goed bezig - gebruikt ingebouwde PHP-functies in plaats van eigen omwegen te schrijven.

Maar de code is nog steeds niet optimaal: hier is het niet nodig de string in een array op te splitsen, aangezien er een kant-en-klare functie strpos bestaat die zoeken in een string uitvoert:

<?php $str = '12345'; if (strpos($str, '3') !== false) { echo 'aanwezig'; } else { echo 'afwezig'; } ?>

Waarom is het hier slecht om in een array op te splitsen? Omdat ten eerste het opsplitsen in een array processorbronnen kost, en ten tweede zal de resulterende array ruimte in het werkgeheugen innemen (meer dan de ruimte die de string zelf inneemt).

De moraal: splits een string niet in een array als er een manier is om dit niet te doen.

In de volgende code keert een programmeur de tekens in de string om. Optimaliseer de oplossing van deze programmeur:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // geeft '54321' uit ?>

In de volgende code zoekt iemand naar het aantal woorden in een tekst. Optimaliseer de oplossing van deze programmeur:

<?php $str = 'aaa bbb ccc'; // een of andere lange string echo count(explode(' ', $str)); ?>
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