Rekursion med parameter i PHP

La oss, ved hjelp av rekursion, sekvensielt skrive ut elementene i en array. La arrayen initialt være sendt som en parameter til funksjonen:

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

La oss først, uten rekursion, ved å bruke funksjonen array_shift skrive ut alle elementene i arrayen en etter en:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // skriver ut 1
    var_dump($arr); // skriver ut [2, 3] - arrayen er redusert
    
    var_dump(array_shift($arr)); // skriver ut 2
    var_dump($arr); // skriver ut [3] - arrayen er redusert
    
    var_dump(array_shift($arr)); // skriver ut 3
    var_dump($arr); // skriver ut [] - arrayen er tom
  }
  
  func([1, 2, 3]);
?>

Som du ser, funksjonen array_shift kutter ut og returnerer det første elementet i arrayen, samtidig som selve arrayen reduseres med dette elementet.

La oss nå bruke rekursion:

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

Egentlig er det selvfølgelig enklest å iterere over elementene i arrayen med en loop. De viste eksemplene demonstrerer ganske enkelt arbeidet med rekursion på enkle eksempler (ikke fra virkelige situasjoner). Mer nyttige eksempler på anvendelse av rekursion er rett og slett mer komplekse, vi skal se på dem litt nedenfor.

Задание 1

Gitt følgende array:

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

Bruk rekursion til å skrive ut elementene i denne arrayen på skjermen.