Récursion avec un paramètre en PHP
Affichons séquentiellement les éléments d'un tableau à l'aide de la récursion. Supposons que le tableau soit initialement transmis en paramètre à la fonction :
<?php
func([1, 2, 3]);
?>
Pour commencer, sans récursion, utilisons la fonction
array_shift
pour afficher tous les éléments du tableau un par un :
<?php
function func($arr) {
var_dump(array_shift($arr)); // affichera 1
var_dump($arr); // affichera [2, 3] - le tableau a diminué
var_dump(array_shift($arr)); // affichera 2
var_dump($arr); // affichera [3] - le tableau a diminué
var_dump(array_shift($arr)); // affichera 3
var_dump($arr); // affichera [] - le tableau est vide
}
func([1, 2, 3]);
?>
Comme vous pouvez le voir, la fonction array_shift
extrait et renvoie le premier élément du tableau,
pendant que le tableau lui-même est réduit de cet élément.
Utilisons maintenant la récursion :
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
En réalité, bien sûr, il est plus simple de parcourir les éléments d'un tableau avec une boucle. Les exemples donnés servent simplement à démontrer le fonctionnement de la récursion avec des exemples simples (non issus de la vie réelle). Les exemples plus utiles d'application de la récursion sont simplement plus complexes, nous les examinerons un peu plus tard.
Soit le tableau :
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
À l'aide de la récursion, affichez les éléments de ce tableau à l'écran.