⊗ppSpOtAC 83 of 83 menu

Optimalisering av konvertering til array i PHP

Det er ikke alltid nødvendig å splitte en streng til et array for å gjøre noe med den.

La oss se på et eksempel. I det følgende eksempelet sjekker kodeforfatteren om strengen inneholder sifferet 3:

<?php $str = '12345'; $arr = explode('', $str); // deler opp i et array if (in_array(3, $arr)) { echo 'finnes'; } else { echo 'ikke'; } ?>

Forfatteren flott - bruker PHP innebygde funksjoner i stedet for å skrive sine egne krøker.

Men koden er likevel ikke optimal: her er det ikke behov for å splitte strengen til et array, fordi det finnes en ferdig funksjon strpos som utfører søk i en streng:

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

Hvorfor er det dårlig å splitte til et array her? Fordi det for det første bruker prosessorkraft på å splitte til et array, og for det andre vil det resulterende arrayet oppta plass i RAM-minnet (og dessuten vil det oppta mer plass enn strengen selv gjør).

Moralen: ikke splitt strengen til et array hvis det finnes en måte å unngå det på.

I den følgende koden snur en programmerer tegnene i strengen i omvendt rekkefølge. Optimaliser denne programmererens løsning:

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

I den følgende koden søker en etter antall ord i en tekst. Optimaliser denne programmererens løsning:

<?php $str = 'aaa bbb ccc'; // en lang streng echo count(explode(' ', $str)); ?>
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis