Perhitungan Panjang Array yang Tidak Perlu dalam Loop di PHP
Misalkan diberikan suatu array dengan angka-angka:
<?php
$arr = [1, 2, 3, 4, 5];
?>
Mari kita ubah setiap elemen
array menjadi kuadrat. Artinya, kita harus
memiliki array $arr yang sama, tetapi dengan
angka kuadrat.
Dalam hal ini, loop foreach tidak cocok,
dan yang dibutuhkan adalah loop for biasa
untuk array, seperti ini:
<?php
$arr = [1, 2, 3, 4, 5];
for ($i = 0; $i < count($arr); $i++) {
$arr[$i] = $arr[$i] * $arr[$i]; // mengubah setiap elemen array
}
var_dump($arr);
?>
Apa yang salah dengan kode ini? Masalahnya adalah
count($arr) akan dihitung secara tidak berarti
pada setiap iterasi loop! Mengapa?
Karena panjang array tidak berubah selama loop, bukan?
Untuk optimasi, mari kita pindahkan perhitungan panjang array ke variabel terpisah:
<?php
$arr = [1, 2, 3, 4, 5];
$len = count($arr); // mengoptimasi
for ($i = 1; $i < $len; $i++) {
$arr[$i] = $arr[$i] * $arr[$i];
}
var_dump($arr);
?>
Optimasi kode di bawah ini:
<?php
$arr = [1, 2, 2, 4, 5];
for ($i = 1; $i < count($arr); $i++) {
if ($arr[$i - 1] === $arr[$i]) {
echo $arr[$i] . '<br>';
}
}
?>