⊗ppSpOtAC 83 of 83 menu

Masīva konvertēšanas optimizācija PHP

Ne vienmēr ir nepieciešams sadalīt virkni masīvā, lai ar to kaut ko izdarītu.

Apskatīsim piemēru. Nākamajā piemērā koda autors pārbauda, vai virknē ir cipars 3:

<?php $str = '12345'; $arr = explode('', $str); // sadalām masīvā if (in_array(3, $arr)) { echo 'ir'; } else { echo 'nav'; } ?>

Autors ir čempions - izmanto PHP iebūvētās funkcijas, tā vietā, lai rakstītu savus pastiprinājumus.

Bet kods joprojām nav optimāls: šeit nav vajadzības sadalīt virkni masīvā, jo pastāv iebūvēta funkcija strpos, kas veic meklēšanu virknē:

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

Kāpēc šeit sadalīšana masīvā ir slikta? Tāpēc ka, pirmkārt, sadalīšanai masīvā tiek tērēti procesora resursi, otrkārt, iegūtais masīvs aizņems vietu operatīvajā atmiņā (turklāt tā būs lielāka nekā vieta, ko aizņem pati virkne).

Moralite: nesadaliet virkni masīvā, ja ir iespējams to nedarīt.

Nākamajā kodā kāds programmētājs apgriež virknes simbolus apgrieztā secībā. Optimizējiet šī programmētāja risinājumu:

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

Nākamajā kodā kāds meklē vārdu skaitu tekstā. Optimizējiet šī programmētāja risinājumu:

<?php $str = 'aaa bbb ccc'; // kāds garš virkne echo count(explode(' ', $str)); ?>
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt