⊗ppSpOtAC 95 of 95 menu

Optimizarea conversiei în array în PHP

Nu întotdeauna este necesar să despărțim un șir de caractere într-un array pentru a face ceva cu el.

Să ne uităm la un exemplu. În următorul exemplu, autorul codului verifică dacă în șir de caractere se află cifra 3:

<?php $str = '12345'; $arr = explode('', $str); // vom despărți în array if (in_array(3, $arr)) { echo 'există'; } else { echo 'nu există'; } ?>

Autorul este foarte bun - utilizează funcții încorporate PHP, în loc să scrie propriile soluții improvizate.

Dar codul totuși nu este optim: aici nu este nevoie să despărțim șirul de caractere într-un array, deoarece există funcția gata făcută strpos, care efectuează căutarea într-un șir de caractere:

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

De ce este rău să despărțim în array aici? Deoarece, în primul rând, despărțirea în array consumă resurse de procesor, iar în al doilea rând, array-ul rezultat va ocupa spațiu în memoria operativă (și acesta va fi mai mult decât spațiul ocupat de șirul de caractere însuși).

Morala: nu despărțiți șirul de caractere în array, dacă există o metodă de a evita acest lucru.

În următorul cod, un programator oarecare inversează caracterele șirului în ordine inversă. Optimizați soluția acestui programator:

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

În următorul cod, un programator oarecare caută numărul de cuvinte într-un text. Optimizați soluția acestui programator:

<?php $str = 'aaa bbb ccc'; // un șir de caractere lung oarecare echo count(explode(' ', $str)); ?>
plroidhuuzc