Optimalizace pomocí vestavěných funkcí v PHP
Nechť nějaký programátor kontroluje, zda
v poli je čí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; // vypadneme z cyklu, aby se točit zbytečně
}
}
var_dump($exists);
?>
Tvrdím, že s tímto kódem je něco v nepořádku. Co je špatně, vždyť vypadáváme z cyklu poté, co jsme našli číslo 3? Věc se má tak, že vestavěné funkce v PHP vždy pracují řádově rychleji než analogický vlastnoručně napsaný kód.
V našem případě existuje funkce in_array,
která řeší zadaný úkol, - a používat
je třeba právě tuto funkci:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
Ponaučení: před řešením úkolu nezapomeňte zkontrolovat, zda pro jeho řešení neexistuje vestavěná funkce PHP.
V následujícím kódu nějaký programátor hledá součet prvků pole. Optimalizujte řešení tohoto programátora.
Zde 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 následujícím kódu nějaký programátor hledá součin prvků pole. Optimalizujte řešení tohoto programátora:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>