элементы не добавляются в массив динамически в рекурсии - PullRequest
0 голосов
/ 18 мая 2018

В моем приложении CodeIgniter я определил массив в функции (скажем, функция-A), и я динамически добавляю некоторые значения в этот массив внутри функции-A.

Я вызываю другую функцию (скажем, функцию-B) из функции-A, и эта функция-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 голосов
/ 18 мая 2018

Здравствуйте. Вам просто нужно передать переменную массива как ссылку в функцию B, когда вы вызвали эту функцию из функции A, и ваша работа будет завершена.проверьте ниже код:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...