Recursie cu parametru în PHP

Să folosim recursia pentru a afișa secvențial elementele unui array. Să presupunem că array-ul este transmis inițial ca parametru funcției:

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

Să afișăm toate elementele array-ului pe rând, momentan fără recursie, folosind funcția array_shift:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // va afișa 1
    var_dump($arr); // va afișa [2, 3] - array-ul s-a micșorat
    
    var_dump(array_shift($arr)); // va afișa 2
    var_dump($arr); // va afișa [3] - array-ul s-a micșorat
    
    var_dump(array_shift($arr)); // va afișa 3
    var_dump($arr); // va afișa [] - array-ul este gol
  }
  
  func([1, 2, 3]);
?>

După cum vedeți, funcția array_shift taie și returnează primul element al array-ului, în timp ce array-ul în sine se micșorează cu acest element.

Să folosim acum recursia:

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

Desigur, de fapt, cea mai simplă metodă este de a parcurge elementele array-ului cu o buclă. Exemplele date sunt doar pentru a demonstra funcționarea recursiei cu exemple simple (nu din viața reală). Exemplele mai utile de aplicare a recursiei sunt pur și simplu mai complexe, le vom analiza mai jos.

Задание 1

Se dă array-ul:

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

Folosind recursia, afișați elementele acestui array pe ecran.