⊗ppSpOtAC 83 of 83 menu

Optimering av konvertering till array i PHP

Det är inte alltid nödvändigt att dela upp en sträng i en array för att göra något med den.

Låt oss titta på ett exempel. I följande exempel kontrollerar kodförfattaren om strängen innehåller siffran 3:

<?php $str = '12345'; $arr = explode('', $str); // delar upp i en array if (in_array(3, $arr)) { echo 'finns'; } else { echo 'saknas'; } ?>

Författaren har gjort ett bra jobb - använder PHPs inbyggda funktioner istället för att skriva egna lösningar.

Men koden är ändå inte optimal: det finns inget behov av att dela upp strängen i en array, eftersom det finns en färdig funktion strpos som utför sökning i en sträng:

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

Varför är det dåligt att dela upp i en array här? För det första kräver uppdelningen till array processorkraft, för det andra kommer den resulterande arrayen att ta upp utrymme i arbetsminnet (och detta utrymme kommer att vara större än det utrymme som strängen själv upptar).

Slutsats: dela inte upp strängar i arrayer om det finns ett sätt att undvika det.

I följande kod vänder en programmerare om tecknen i en sträng. Optimera denna programmerares lösning:

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

I följande kod letar någon efter antalet ord i en text. Optimera denna programmerares lösning:

<?php $str = 'aaa bbb ccc'; // en lång sträng echo count(explode(' ', $str)); ?>
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa