Cómo implementar recursión en PHP?
¡Hola a todos! Por favor, indíquenme cómo implementar correctamente la recursión en PHP. Estoy escribiendo una función para recorrer un array multidimensional y sumar todos los valores, pero al final obtengo 0 o un bucle infinito.
Esto es lo que he probado:
function recursiveSum($arr) {
static $sum = 0;
foreach ($arr as $value) {
if (is_array($value)) {
recursiveSum($value);
} else {
$sum += $value;
}
}
return $sum;
}
$data = [1, [2, 3], [4, [5, 6]]];
echo recursiveSum($data); // espero: 21El problema es que al llamar la función varias veces con diferentes arrays, el resultado se acumula debido a la variable static. También probé pasar la suma por referencia (&$sum), pero entonces la función devuelve valores inesperados. Otra opción con una variable global tampoco es adecuada: viola los principios de código limpio.
Espero que la función devuelva la suma de todos los números en un array de cualquier anidamiento, y que cada llamada
No answers yet.
Inicia sesión para dejar una respuesta