Rekursi dengan Parameter dalam PHP
Mari kita, dengan menggunakan rekursi, secara berurutan tampilkan elemen-elemen array. Misalkan array awalnya diteruskan sebagai parameter fungsi:
<?php
func([1, 2, 3]);
?>
Mari untuk sementara tanpa rekursi, menggunakan fungsi
array_shift
tampilkan semua elemen array satu per satu:
<?php
function func($arr) {
var_dump(array_shift($arr)); // menampilkan 1
var_dump($arr); // menampilkan [2, 3] - array berkurang
var_dump(array_shift($arr)); // menampilkan 2
var_dump($arr); // menampilkan [3] - array berkurang
var_dump(array_shift($arr)); // menampilkan 3
var_dump($arr); // menampilkan [] - array kosong
}
func([1, 2, 3]);
?>
Seperti yang Anda lihat, fungsi array_shift
memotong dan mengembalikan elemen pertama array,
sementara itu array itu sendiri berkurang sebanyak elemen tersebut.
Sekarang mari kita gunakan rekursi:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Sebenarnya, tentu saja, cara paling mudah adalah dengan mengulang elemen-elemen array menggunakan perulangan. Contoh-contoh yang diberikan di atas hanyalah demonstrasi kerja rekursi pada contoh-contoh sederhana (bukan dari kehidupan nyata). Contoh-contoh penerapan rekursi yang lebih berguna memang lebih kompleks, kita akan membahasnya sedikit di bawah.
Diberikan array:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Dengan menggunakan rekursi, tampilkan elemen-elemen array ini pada layar.