元素不会在递归中动态添加到数组中

时间:2018-05-18 11:02:07

标签: php codeigniter

在我的CodeIgniter应用程序中,我在函数中定义了一个数组(比如函数-A),我在函数-A中动态地向该数组添加了一些值。

我从函数-A调用另一个函数(比如函数-B),这个函数-B递归地向函数-A中定义的原始数组添加一些值。但问题是,当我最终打印数组时,它只在函数A中添加了值。

那么请告诉我为什么元素没有被推入函数-B中的数组?

代码:

function A() {
    $ChnCat_tags = array();

    //some code

    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );

    recursion_result = function-B($ChnCat_tags);

    print_r($ChnCat_tags); //only prints values added in function-A
}


function B($ChnCat_tags) {

    //some code

    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );

    recursion_result = function-B($ChnCat_tags);

    return recursion_result;
}

1 个答案:

答案 0 :(得分:0)

Hello当您从函数A调用该函数时,您只需要将函数B中的数组变量作为引用传递,您的工作就完成了。 检查以下代码:

function A() {
$ChnCat_tags = array();

//some code

$ChnCat_tags[] = array(
    'level' => $level,
    'value' => $row_vct->id_vct,
    'label' => $row_vct->displayname_vct,
    'disable' => $disb
);

recursion_result = function-B(&$ChnCat_tags);

print_r($ChnCat_tags); //only prints values added in function-A

}

function B($ChnCat_tags) {

//some code

$ChnCat_tags[] = array(
    'level' => $level,
    'value' => $row_vct->id_vct,
    'label' => $row_vct->displayname_vct,
    'disable' => $disb
);

recursion_result = function-B($ChnCat_tags);

return recursion_result;
}