Rekursija ar parametru PHP

Izmantosim rekursiju, lai secīgi izvadītu masīva elementus. Lai masīvs sākotnēji tiek nodots funkcijas parametram:

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

Pagaidām bez rekursijas, izmantojot funkciju array_shift izvadīsim visus masīva elementus pēc kārtas:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // izvadīs 1
    var_dump($arr); // izvadīs [2, 3] - masīvs samazinājies
    
    var_dump(array_shift($arr)); // izvadīs 2
    var_dump($arr); // izvadīs [3] - masīvs samazinājies
    
    var_dump(array_shift($arr)); // izvadīs 3
    var_dump($arr); // izvadīs [] - masīvs ir tukšs
  }
  
  func([1, 2, 3]);
?>

Kā jūs redzat, funkcija array_shift izgriež un atgriež masīva pirmo elementu, savukārt pats masīvs par šo elementu samazinās.

Tagad izmantosim rekursiju:

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

Patiesībā, protams, visvieglāk ir izmantot cilpu, lai izietu cauri masīva elementiem. Dotie piemēri vienkārši demonstrē rekursijas darbību ar vienkāršiem piemēriem (ne reāliem). Vairāk lietderīgi rekursijas pielietojuma piemēri vienkārši ir sarežģītāki, mēs tos apskatīsim nedaudz vēlāk.

Задание 1

Dots masīvs:

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

Ar rekursijas palīdzību izvadiet šī masīva elementus uz ekrāna.