Optimalisering med innebygde funksjoner i PHP

La oss si at en programmerer sjekker om det finnes tallet 5 i en array:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 5) {
      $exists = true;
      break; // avslutter løkken for å unngå unødvendige iterasjoner
    }
  }
  
  var_dump($exists);
?>

Jeg hevder at det er noe galt med denne koden. Hva er i veien, vi avslutter jo løkken etter at vi har funnet tallet 3? Saken er at innebygde PHP-funksjoner alltid arbeider mye raskere enn tilsvarende egenhåndskrevet kode.

I vårt tilfelle finnes det en funksjon in_array som løser den gitte oppgaven, - og man bør bruke nettopp denne funksjonen:

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

Moralen: før du løser en oppgave, sørg for å sjekke om det finnes en innebygd PHP-funksjon for å løse den.

Задание 1

I følgende kode finner en programmerer summen av elementene i arrayen. Optimaliser løsningen til denne programmereren.

Her er koden:

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

I følgende kode finner en programmerer produktet av elementene i arrayen. Optimaliser løsningen til denne programmereren:

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