რეკურსია პარამეტრით 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]);
?>

რა თქმა უნდა, მასივის ელემენტების გადასავლელად ყველაზე მარტივია ციკლის გამოყენება. მოყვანილი მაგალითები უბრალოდ აჩვენებენ რეკურსიის მუშაობას მარტივ მაგალითებზე (არაპრაქტიკულ). რეკურსიის გამოყენების უფრო სასარგებლო მაგალითები უბრალოდ უფრო რთულია, ჩვენ მათ ცოტა მოგვიანებით განვიხილავთ.

Задание 1

მოცემულია მასივი:

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

რეკურსიის გამოყენებით გამოიტანეთ ამ მასივის ელემენტები ეკრანზე.