Optimizimi i Operacioneve Ciklike në PHP

Edhe një operacion i lehtë, i përsëritur shumë herë në një cikël, mund të konsumojë shumë burime.

Le të shohim një shembull. Le të themi se kemi një array të caktuar:

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

Le të gjejmë mesataren e elementeve të këtij array. Për këtë, duhet të gjejmë shumën e elementeve dhe ta ndajmë atë me numrin e tyre. Le të themi se një programues tashmë e ka zgjidhur këtë detyrë në mënyrën e mëposhtme:

php<?php
  $sum = 0;
  
  foreach ($arr as $elem) {
    $sum += $elem / count($arr);
  }
  
  echo $sum;
?>

Le të shqyrtojmë problemet e këtij zgjidhjeje. Nga ana teknike, kodi funksionon saktë dhe jep përgjigjen e saktë. Çështja është se matematikisht është e saktë të ndash të gjithë shumën me numrin e elementeve, ashtu siç është e saktë të ndash secilin prej termave veç e veç me numrin e elementeve.

Megjithatë, lind një problem tjetër. Çështja është se ne do të kryejmë pjesëtim aq herë sa ka elemente në array-in tonë. Dhe del se ne bëjmë një numër të madh operacionesh të tepërta, sepse pjesëtimin mund ta kishim kryer në fund - një herë, duke e ndarë të gjithë shumën e gjetur.

Le të optimizojmë kodin tonë:

php<?php
  $sum = 0;
  
  foreach ($arr as $elem) {
    $sum += $elem;
  }
  
  echo $sum / count($arr);
?>
Задание 1

Optimizoni kodin e dhënë më poshtë:

php<?php
  for ($i = 1; $i <= 31; $i++) {
    if ($i === date('d')) {
      echo "<b>$i</b><br>";
    }
    
    if ($i !== date('d')) {
      echo "$i<br>";
    }
  }
?>