⊗ppSpOtAC 83 of 83 menu

Optymalizacja konwersji na tablicę w PHP

Nie zawsze trzeba dzielić ciąg znaków na tablicę, aby coś z nim zrobić.

Spójrzmy na przykład. W następnym przykładzie autor kodu sprawdza, czy w ciągu znaków znajduje się cyfra 3:

<?php $str = '12345'; $arr = explode('', $str); // podzielimy na tablicę if (in_array(3, $arr)) { echo 'jest'; } else { echo 'nie ma'; } ?>

Autor jest świetny - używa wbudowanych funkcji PHP, zamiast pisać własne obejścia.

Ale kod nadal nie jest optymalny: tutaj nie ma potrzeby dzielenia ciągu na tablicę, ponieważ istnieje gotowa funkcja strpos, która wykonuje wyszukiwanie w ciągu znaków:

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

Dlaczego dzielenie na tablicę jest tutaj złe? Ponieważ po pierwsze, na podział na tablicę zużywane są zasoby procesora, po drugie, otrzymana tablica będzie zajmować miejsce w pamięci operacyjnej (a będzie jej więcej niż miejsce zajmowane przez sam ciąg znaków).

Morał: nie dziel ciągu znaków na tablicę, jeśli istnieje sposób, aby tego nie robić.

W następnym kodzie pewien programista odwraca znaki ciągu w odwrotnej kolejności. Zoptymalizuj rozwiązanie tego programisty:

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

W następnym kodzie pewien programista szuka liczby słów w tekście. Zoptymalizuj rozwiązanie tego programisty:

<?php $str = 'aaa bbb ccc'; // jakiś długi ciąg znaków echo count(explode(' ', $str)); ?>
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć