array_push()函数在递归函数

时间:2017-08-04 05:03:00

标签: php arrays recursion

我在php中使用递归函数。该函数遍历数组并在新数组中输入数组的某些值。我使用array_push()在新数组中输入值,我也尝试在不使用array_push的情况下执行此操作。这是调用递归函数

的函数的一部分
if ($this->input->post('id') != '') {
    $id = $this->input->post('id');

    global $array_ins;
    $k=0;
    $data['condition_array'] = $this->array_check($id, $menus['parents'], $k);

    // trial
    echo "<pre>";
    print_r($menus['parents']);
    print_r($data['condition_array']);die;
    // trial
}

这是递归函数

function array_check($val, $array_main, $k) {
    // echo $val . "<br>";
    $array_ins[$k] = $val;
    echo $k . "<br>";
    $k++;
    // $array_ins = array_push($array_ins, $val);
    echo "<pre>";
    print_r($array_ins);
    if ($array_main[$val] != '') {
        for ($i = 0; $i < sizeof($array_main[$val]); $i++) {
            $this->array_check($array_main[$val][$i], $array_main, $k);
        }
        // $k++;
    }

我一直试图解决这个问题很长一段时间没有运气。我真的很感激任何可能的帮助。 提前谢谢

3 个答案:

答案 0 :(得分:2)

global $array_ins;语句移动到函数中。

答案 1 :(得分:1)

将变量$array_ins作为参数传递给函数

function array_check($val, $array_main, $k,$array_ins) {


}

并调用函数

$this->array_check($id, $menus['parents'], $k,$array_ins);

function array_check($val, $array_main, $k) {

global $array_ins;

}

不建议在php Are global variables in PHP considered bad practice? If so, why?

中使用global

答案 2 :(得分:0)

全局关键字应该在函数内部使用,以便变量引用外部作用域中的值。

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
} 

Sum();
echo $b; // 3