Rekurzija sa parametrom u PHP
Hajde da, uz pomoć rekurzije, uzastopno ispisujemo elemente niza. Neka se niz inicijalno prosledi kao parametar funkcije:
<?php
func([1, 2, 3]);
?>
Hajde za sada bez rekurzije, koristeći funkciju
array_shift
ispisujemo sve elemente niza jedan za drugim:
<?php
function func($arr) {
var_dump(array_shift($arr)); // ispisaće 1
var_dump($arr); // ispisaće [2, 3] - niz se smanjio
var_dump(array_shift($arr)); // ispisaće 2
var_dump($arr); // ispisaće [3] - niz se smanjio
var_dump(array_shift($arr)); // ispisaće 3
var_dump($arr); // ispisaće [] - niz je prazan
}
func([1, 2, 3]);
?>
Kao što vidite, funkcija array_shift
izdvaja i vraća prvi element niza,
pri čemu se sam niz smanjuje za taj element.
Hajde sada da iskoristimo rekurziju:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
U stvarnosti, naravno, najjednostavnije je proći kroz elemente niza petljom. Navedeni primeri za sada jednostavno demonstriraju rad rekurzije na jednostavnim primerima (koji nisu iz stvarnog života). Korisniji primeri primene rekurzije su jednostavno komplikovaniji, analiziraćemo ih nešto kasnije.
Dat je niz:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Uz pomoć rekurzije ispišite elemente ovog niza na ekran.