Оптимизация через встроенные функции в 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;
?>