Оптимизация чрез вградени функции в PHP

Нека един програмист проверява дали в масива има число 5:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 5) {
      $exists = true;
      break; // ще излезем от цикъла, за да не се върти допълнително
    }
  }
  
  var_dump($exists);
?>

Аз твърдя, че с този код има нещо нередно. Какво не е наред, ние излизаме от цикъла след като намерихме числото 3? Работата е там, че вградените в PHP функции винаги работят с порядъци по-бързо от аналогичен писан от нулата код.

В нашия случай съществува функцията in_array, която решава поставената задача, - и трябва да се използва именно тази функция:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  var_dump(in_array(3, $arr));
?>

Морал: преди решаването на задача задължително проверете дали няма вградена функция в PHP за нейното решаване.

Задание 1

В следващия код един програмист намира сумата на елементите на масив. Оптимизирайте решението на този програмист.

Ето кода:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $sum = 0;
  foreach ($arr as $elem) {
    $sum += $elem;
  }
  echo $sum;
?>
Задание 2

В следващия код един програмист намира произведението на елементите на масив. Оптимизирайте решението на този програмист:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $res = 1;
  foreach ($arr as $elem) {
    $res *= $elem;
  }
  echo $res;
?>