Rekurze s parametrem v PHP

Pomocí rekurze postupně vypišme prvky pole. Nechť je pole inicialně předáno parametrům funkce:

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

Nyní zkusme bez rekurze pomocí funkce array_shift vypišme všechny prvky pole jeden po druhém:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // vypíše 1
    var_dump($arr); // vypíše [2, 3] - pole se zmenšilo
    
    var_dump(array_shift($arr)); // vypíše 2
    var_dump($arr); // vypíše [3] - pole se zmenšilo
    
    var_dump(array_shift($arr)); // vypíše 3
    var_dump($arr); // vypíše [] - pole je prázdné
  }
  
  func([1, 2, 3]);
?>

Jak vidíte, funkce array_shift vyjme a vrátí první prvek pole, přičemž samotné pole se tímto prvkem zmenší.

Nyní použijme rekurzi:

php<?php
  function func($arr) {
    var_dump(array_shift($arr));
    var_dump($arr);
    
    if (count($arr) !== 0) {
      func($arr);
    }
  }
  
  func([1, 2, 3]);
?>

Samozřejmě, nejjednodušší je projít prvky pole pomocí cyklu. Uvedené příklady jsou pouze demonstrací práce rekurze na jednoduchých (ne reálných) příkladech. Užitečnější příklady použití rekurze jsou složitější, rozebereme je níže.

Задание 1

Je dáno pole:

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

Pomocí rekurze vypište prvky tohoto pole na obrazovku.