Рекурсия с параметър в PHP

Нека, с помощта на рекурсия последователно изведем елементите на масив. Нека масивът първоначално се предава като параметър на функцията:

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

Нека първо без рекурсия, използвайки функцията array_shift да изведем всички елементи на масива един по един:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // ще изведе 1
    var_dump($arr); // ще изведе [2, 3] - масивът намаля
    
    var_dump(array_shift($arr)); // ще изведе 2
    var_dump($arr); // ще изведе [3] - масивът намаля
    
    var_dump(array_shift($arr)); // ще изведе 3
    var_dump($arr); // ще изведе [] - масивът е празен
  }
  
  func([1, 2, 3]);
?>

Както виждате, функцията array_shift изрязва и връща първия елемент от масива, като самият масив намалява с този елемент.

Нека сега използваме рекурсия:

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

В действителност, разбира се, най-лесно е да обхождате елементите на масива с цикъл. Дадените примери просто демонстрират работата на рекурсията с прости примери (не от реалния живот). По- полезните примери за приложение на рекурсията са просто по-сложни, ще ги разгледаме малко по-късно.

Задание 1

Даден е масив:

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

С помощта на рекурсия изведете елементите на този масив на екрана.