我在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++;
}
我一直试图解决这个问题很长一段时间没有运气。我真的很感激任何可能的帮助。 提前谢谢
答案 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