Uboreshaji wa Kubadilisha kuwa Safu katika PHP
Si kila wakati ni muhimu kugawanya kamba kuwa safu, ili kufanya kitu nayo.
Tuangalie kwa mfano.
Katika mfano ufuatazo mwandishi wa msimbo anakuangalia,
kama kuna nambari 3 kwenye kamba:
<?php
$str = '12345';
$arr = explode('', $str); // tugawanye kuwa safu
if (in_array(3, $arr)) {
echo 'ipo';
} else {
echo 'hakuna';
}
?>
Mwandishi mzuri - anatumia kazi zilizo jengwa za PHP, badala ya kuandika misuli yake mwenyewe.
Lakini msimbo bado hauo bora: hapa hakuna
haja ya kugawanya kamba kuwa safu, kwa sababu kuna
kazi tayari strpos, inayofanya
utafutaji kwenye kamba:
<?php
$str = '12345';
if (strpos(str, 3) !== false) {
echo 'ipo';
} else {
echo 'hakuna';
}
?>
Kwa nini hapa kugawanya kuwa safu ni mbaya? Kwa sababu kwanza, kugawanya kuwa safu hutumia rasilimali za kiwambo, pili, safu inayopatikana itachukua nafasi kwenye kumbukumbu ya kupitisha (na zaidi ya hayo, itakuwa kubwa kuliko nafasi inayochukuliwa na kamba yenyewe).
Maadili: msigawanye kamba kuwa safu, ikiwa kuna njia ya kufanya bila kufanya hivyo.
Katika msimbo ufuatazo programu fulani anageuza herufi za kamba kwa mpangilio wa nyuma. Boresha ufumbuzi wa programu huyu:
<?php
$str = '123345';
$rev = implode('', array_reverse(explode('', $str)));
echo $rev; // itatoa '54321'
?>
Katika msimbo ufuatazo anatafuta idadi ya maneno kwenye maandishi. Boresha ufumbuzi wa programu huyu:
<?php
$str = 'aaa bbb ccc'; // kamba fulani ndefu
echo count(explode(' ', $str));
?>