Rekurzia s parametrom v PHP

Pomocou rekurzie postupne vypíšme prvky poľa. Nech je pole na začiatku odovzdané parametrom funkcie:

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

Najprv bez rekurzie, pomocou funkcie array_shift vypíšme všetky prvky poľa jeden po druhom:

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

Ako vidíte, funkcia array_shift vyreže a vráti prvý prvok poľa, pričom samotné pole sa o tento prvok zmenší.

Teraz použime rekurziu:

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

Samozrejme, v praxi by bolo najjednoduchšie prechádzať prvky poľa pomocou cyklu. Uvedené príklady jednoducho demonštrujú prácu rekurzie na jednoduchých (neživotných) príkladoch. Užitočnejšie príklady použitia rekurzie sú zložitejšie, rozoberieme ich o niečo neskôr.

Задание 1

Dané pole:

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

Pomocou rekurzie vypíšte prvky tohto poľa na obrazovku.