Rekursi dengan Parameter dalam PHP
Mari kita, dengan menggunakan rekursi, secara berurutan menampilkan elemen-elemen array. Biarkan array pada awalnya dihantar sebagai parameter kepada fungsi:
<?php
func([1, 2, 3]);
?>
Mari kita buat tanpa rekursi dahulu dengan menggunakan fungsi
array_shift
tampilkan semua elemen array satu persatu:
<?php
function func($arr) {
var_dump(array_shift($arr)); // akan memaparkan 1
var_dump($arr); // akan memaparkan [2, 3] - array telah mengecil
var_dump(array_shift($arr)); // akan memaparkan 2
var_dump($arr); // akan memaparkan [3] - array telah mengecil
var_dump(array_shift($arr)); // akan memaparkan 3
var_dump($arr); // akan memaparkan [] - array kosong
}
func([1, 2, 3]);
?>
Seperti yang anda lihat, fungsi array_shift
memotong dan mengembalikan elemen pertama array,
sementara array itu sendiri mengecil dengan 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, sudah tentu lebih mudah untuk mengulangi elemen-elemen array menggunakan gelung. Contoh-contoh yang diberikan hanya menunjukkan cara kerja rekursi melalui contoh mudah (bukan dari kehidupan sebenar). Contoh penggunaan rekursi yang lebih berguna sememangnya lebih kompleks, kita akan menganalisisnya sedikit kemudian.
Diberi array:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Dengan menggunakan rekursi, tampilkan elemen-elemen array ini pada skrin.