How to store values of a recursive function in an array?

3

I've tried to pass an array as a parameter, but returned only the first value of the counter. What is the correct way to return an array with all the values inside a recursive function? Here is the array return function:

The initial function follows:

function minhaFuncao($contador)
{
if($contador < 10)
{
    echo "O contador agora é: ".$contador."<br>";
    $contador++;
    minhaFuncao($contador);
}
    return true;
}

minhaFuncao(1);

Here is the function with an attempt to return with array:

function minhaFuncao($contador, $lista = array())
{
if($contador < 10)
{
    echo "O contador agora é: ".$contador."<br>";
    $lista[] = $contador;
    $contador++;
    minhaFuncao($contador);
}
    return $lista;
}

print_r(minhaFuncao(1));
    
asked by anonymous 24.01.2015 / 23:00

1 answer

5

The problem is that you are not passing the array as a parameter or returning the value of the recursive call.

You can do this:

function minhaFuncao($contador, $lista = array())
{
    if($contador < 10)
    {
        $lista[] = $contador;
        $contador++;
        return minhaFuncao($contador, $lista);
    }

    return $lista;
}
    
24.01.2015 / 23:07