Rekursi dengan Parameter dalam PHP

Mari kita, dengan menggunakan rekursi, secara berurutan tampilkan elemen-elemen array. Misalkan array awalnya diteruskan sebagai parameter fungsi:

php<?php
  func([1, 2, 3]);
?>

Mari untuk sementara tanpa rekursi, menggunakan fungsi array_shift tampilkan semua elemen array satu per satu:

php<?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<?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.

Задание 1

Diberikan array:

php<?php
  $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>

Dengan menggunakan rekursi, tampilkan elemen-elemen array ini pada layar.