Recursión con parámetro en PHP
Vamos, mediante recursividad, a mostrar secuencialmente los elementos de un array. Supongamos que el array inicialmente se pasa como parámetro a la función:
<?php
func([1, 2, 3]);
?>
Vamos por ahora sin recursividad, usando la función
array_shift
a mostrar todos los elementos del array uno por uno:
<?php
function func($arr) {
var_dump(array_shift($arr)); // mostrará 1
var_dump($arr); // mostrará [2, 3] - el array se redujo
var_dump(array_shift($arr)); // mostrará 2
var_dump($arr); // mostrará [3] - el array se redujo
var_dump(array_shift($arr)); // mostrará 3
var_dump($arr); // mostrará [] - el array está vacío
}
func([1, 2, 3]);
?>
Como puedes ver, la función array_shift
extrae y devuelve el primer elemento del array,
mientras que el propio array se reduce en este elemento.
Ahora usemos la recursividad:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
En realidad, por supuesto, es más fácil recorrer los elementos del array con un bucle. Los ejemplos proporcionados simplemente demuestran el trabajo de la recursividad con ejemplos simples (no de la vida real). Ejemplos más útiles de aplicación de la recursividad simplemente son más complejos, los analizaremos un poco más adelante.
Dado el array:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Usando recursividad, muestra los elementos de este array en pantalla.