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]);
?>

Албатта, масссив элементларини сikl орқали aylantirib чиқиш анча осон. Келтирилган намуналар жуда содда (ҳаётчан эмас) мисолларда рекурсиянинг ишлашини кўрсатади. Рекурсиянинг янги фойдали қўлланилишлари бироз мураккаброқ, биз уларни кейинроқ ўрганамиз.

Задание 1

Масссив берилган:

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

Рекурсия ёрдамида бу масссив элементларини экрангa чиқаринг.