【发布时间】:2015-11-16 06:57:41
【问题描述】:
我在递归函数中使用了foreach 循环。但是我很难弄清楚在哪里传递我的退货声明。我需要在某个时候返回我的临时数组,但我不知道该怎么做:
<?php
$patterns = function($array, $temp = array(), $i = 0, $id = 0, $parent = 0) use(&$patterns) {
$return = null;
if(array_key_exists($i, $array)) {
foreach($array[$i] as $set) {
if($parent == $set['id']) {
$data = array(
'id' => $set['id'],
'parent' => $set['parent']
);
array_push($temp, $data);
}
$patterns($array, $temp, $i + 1, $set['id'], $set['parent']);
}
}
};
print_r($patterns($rev_relations));
?>
这是我的数据:
Array(
[0] => Array(
[0] => Array(
[id] => 60
[parent] => 55
)
[1] => Array(
[id] => 57
[parent] => 54
)
)
[1] => Array(
[0] => Array(
[id] => 61
[parent] => 50
)
[1] => Array(
[id] => 54
[parent] => 49
)
)
[2] => Array(
[0] => Array(
[id] => 49
[parent] => 0
)
)
)
【问题讨论】:
-
你能初始化一个示例输入或类似的东西,以便我们实际运行代码吗?
-
在递归函数中,所有输入必须来自参数,所有输出必须作为返回值。不应考虑其他选项。
-
zerkms,你是对的。我想我已经封装了我需要的一切。