Optimasi Operasi Siklikal di PHP
Bahkan operasi ringan, yang diulang berkali-kali dalam loop, dapat menghabiskan banyak sumber daya.
Mari kita lihat sebuah contoh. Misalkan kita diberikan sebuah array:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
?>
Mari kita cari rata-rata dari elemen array ini. Untuk melakukannya, kita perlu mencari jumlah elemen dan membaginya dengan jumlahnya. Misalkan seorang programmer telah menyelesaikan masalah ini dengan cara berikut:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem / count($arr);
}
echo $sum;
?>
Mari kita pertimbangkan masalah dari solusi seperti itu. Secara teknis kode bekerja dengan benar dan memberikan jawaban yang benar. Faktanya, secara matematis benar untuk membagi seluruh jumlah dengan jumlahnya, serta membagi setiap suku dengan jumlahnya.
Namun, masalah lain muncul. Masalahnya adalah kita akan melakukan operasi pembagian sebanyak elemen dalam array kita. Dan ternyata, kita melakukan banyak operasi berlebihan, karena pembagian bisa dilakukan di akhir - satu kali, dengan membagi seluruh jumlah yang ditemukan.
Mari kita optimasi kode kita:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum / count($arr);
?>
Optimasi kode di bawah ini:
<?php
for ($i = 1; $i <= 31; $i++) {
if ($i === date('d')) {
echo "<b>$i</b><br>";
}
if ($i !== date('d')) {
echo "$i<br>";
}
}
?>