การปรับปรุงประสิทธิภาพการทำงานแบบวนซ้ำใน PHP

แม้แต่การทำงานเบาๆ ที่ทำซ้ำหลายครั้ง ในลูป ก็สามารถใช้ทรัพยากร จำนวนมากได้

ลองดูตัวอย่างกัน สมมติว่าเรามีอาร์เรย์ดังนี้:

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

ลองหาค่าเฉลี่ยของสมาชิก อาร์เรย์นี้กัน สำหรับการนี้ ต้องหาผลรวม ของสมาชิกแล้วหารด้วยจำนวน สมมติว่าผู้เขียนโค้ดบางคนได้แก้ปัญหานี้ ด้วยวิธีต่อไปนี้:

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

ลองพิจารณาปัญหาของวิธีแก้ไขนี้ ในทางเทคนิคโค้ดทำงานถูกต้องและให้ คำตอบที่ถูกต้อง เรื่องนี้คือในทางคณิตศาสตร์ถูกต้อง ทั้งหารผลรวมทั้งหมดด้วยจำนวน และหารแต่ละพจน์ด้วยจำนวน

อย่างไรก็ตาม มีปัญหาอื่นเกิดขึ้น เรื่องนี้ คือเราจะทำการหาร หลายครั้งเท่ากับจำนวนสมาชิกใน อาร์เรย์ของเรา และปรากฏว่าเราทำ การทำงานที่ไม่จำเป็นจำนวนมาก เพราะการหารสามารถทำได้ ในตอนท้าย - เพียงครั้งเดียว โดยหาร ผลรวมทั้งหมดที่หาได้

ลองปรับปรุงประสิทธิภาพโค้ดของเรา:

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

ปรับปรุงประสิทธิภาพโค้ดด้านล่าง:

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