【发布时间】:2012-07-11 01:55:54
【问题描述】:
这是我的代码的 sn-p。我了解通常建议不要在循环时修改 array,但是在这种情况下,我认为这样做是正确的,并且可以节省资源。
$levels = array($post);
foreach ($levels as $level) {
$next_sibling = get_next_sibling_page($level);
if ($next_sibling) {
$next_page = $next_sibling;
break 1;
} else if ($level->post_parent) {
array_push($levels, get_page($level->post_parent));
}
}
这个想法是foreach 会重复推送值if ($level->post_parent),我可以看到if 语句正在解析为true,array 被推送到但是foreach 没有重复一遍,只运行一次。
有谁知道我如何递归地继续我的 foreach 直到 $level->post_parent 解析为 false?
【问题讨论】:
-
“有谁知道我如何递归地继续我的 foreach..” - 使用递归
-
@KarolyHorvath 你知道一些我不知道的事情吗?