Recursão com parâmetro em PHP

Vamos, usando recursão, exibir sequencialmente os elementos de um array. Suponha que o array inicialmente seja passado como parâmetro para a função:

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

Vamos primeiro, sem usar recursão, usando a função array_shift exibir todos os elementos do array um por um:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // exibirá 1
    var_dump($arr); // exibirá [2, 3] - o array diminuiu
    
    var_dump(array_shift($arr)); // exibirá 2
    var_dump($arr); // exibirá [3] - o array diminuiu
    
    var_dump(array_shift($arr)); // exibirá 3
    var_dump($arr); // exibirá [] - o array está vazio
  }
  
  func([1, 2, 3]);
?>

Como você pode ver, a função array_shift extrai e retorna o primeiro elemento do array, enquanto o próprio array é reduzido por esse elemento.

Agora vamos usar recursão:

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

Na verdade, é claro que é mais fácil percorrer os elementos de um array com um loop. Os exemplos fornecidos simplesmente demonstram o trabalho da recursão com exemplos simples (não do mundo real). Exemplos mais úteis de aplicação de recursão são simplesmente mais complexos, vamos analisá-los a seguir.

Задание 1

Dado o array:

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

Usando recursão, exiba os elementos deste array na tela.