Optimalizácia pomocou vstavaných funkcií v PHP
Nech nejaký programátor kontroluje, či sa
v poli nachádza číslo 5:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 5) {
$exists = true;
break; // ukončíme cyklus, aby sa zbytočne neopakoval
}
}
var_dump($exists);
?>
Tvrdím, že s týmto kódom je niečo nesprávne. Čo je zlé, veď z cyklu vyskočíme potom, čo nájdeme číslo 3? Vec sa má tak, že vstavané funkcie v PHP vždy pracujú rádovo rýchlejšie ako podobný vlastný kód.
V našom prípade existuje funkcia in_array,
ktorá rieši zadanú úlohu, - a používať
treba práve túto funkciu:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Poučenie: pred riešením úlohy určite skontrolujte, či pre jej riešenie existuje vstavaná funkcia PHP.
V nasledujúcom kóde nejaký programátor hľadá súčet prvkov poľa. Optimalizujte riešenie tohto programátora.
Tu je kód:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
V nasledujúcom kóde nejaký programátor hľadá súčin prvkov poľa. Optimalizujte riešenie tohto programátora:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>