Я хочу создать массив, используя рекурсию в Codeigniter. моя функция make_tree()
в контроллере:Создание массива из рекурсивной функции в codeigniter
function make_tree($customer_id,$arr = array()){
$ctree = $this->customer_operations->view_customer_tree($customer_id);
foreach($ctree as $v):
echo $customer_id = $v['customer_id'];
array_push($arr, $customer_id);
$this->make_tree($customer_id);
endforeach;
var_dump($arr);
}
Но выход var_dump($arr)
и echo
результатов как:
1013
array
empty
array
0 => string '13' (length=2)
11
array
empty
array
0 => string '10' (length=2)
1 => string '11' (length=2)
Как я могу сделать один массив из всех трех выходов, то есть массив с элементами 13,10,11
Я бы сказал, попробуйте передать массив вашей функции по ссылке вместо значения, таким образом, он работает над одним и тем же массивом, а не создает новую рекурсию. в основном инициализируйте массив вне функции, затем измените параметр '$ arr = array()' на '& $ arr' – Bryan
Спасибо .. Это помогло. Хотя в его выводах много массивов, я получаю желаемый результат в последнем массиве. – Nitish
выводит тот же массив, что и при каждом запуске функции. И ты рад, рад, что это сработало! удалите дамп var в функции и просто выгрузите исходный массив после вызова функции. – Bryan