Rekursion med parameter i PHP
Låt oss, med hjälp av rekursion, sekventiellt visa elementen i arrayen. Låt arrayen initialt skickas som parameter till funktionen:
<?php
func([1, 2, 3]);
?>
Låt oss först, utan rekursion, använda funktionen
array_shift
för att visa alla element i arrayen en efter en:
<?php
function func($arr) {
var_dump(array_shift($arr)); // visar 1
var_dump($arr); // visar [2, 3] - arrayen har minskat
var_dump(array_shift($arr)); // visar 2
var_dump($arr); // visar [3] - arrayen har minskat
var_dump(array_shift($arr)); // visar 3
var_dump($arr); // visar [] - arrayen är tom
}
func([1, 2, 3]);
?>
Som du kan se, funktionen array_shift
skär ut och returnerar det första elementet i arrayen,
samtidigt som arrayen minskar med det elementet.
Låt oss nu använda rekursion:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
I verkligheten är det naturligtvis enklast att iterera över arrayelement med en loop. De givna exemplen visar helt enkelt hur rekursion fungerar med enkla exempel (inte praktiska). Mer användbara exempel på tillämpning av rekursion är bara mer komplexa, vi kommer att analysera dem lite nedan.
Given array:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Med hjälp av rekursion, visa elementen i denna array på skärmen.