【问题标题】:PHP Foreach loop not stoppingPHP Foreach 循环没有停止
【发布时间】:2015-12-30 16:47:29
【问题描述】:

我的脚本有一个奇怪的行为,foreach 循环只有在我回显结果时才会停止,所以它只会继续插入值......只有在我使用 echo 来显示一些迭代时才会停止......下面是重要的部分代码:

$looparray=array
(
"1"=>array(
        "something1", 
        "something2",
        "something3",
                ),
"2"=>array(
                ),
"3"=>array(
                ),
"4"=>array(
                ),
"5"=>array(
                ),
"6"=>array(
                )
);
foreach ($looparray as $key => $value) {

    if(count($value)=='0') // skip empty arrays
    {
        continue;
    }

    foreach ($value as $singlevalue) {
        for ($i=0; $i<=5; $i++)
        {
            echo $i . '<br />';  //if i don't use it, neverending loop ?!
        }
    }
}

所以,如果我没有回显,那么循环不会在 5 处停止……当然,我在内部 for 循环中有很多停止,但这些并不重要……那为什么会发生呢?

【问题讨论】:

  • 你的 for 循环是正确的。我在没有 echo 语句的情况下运行了您的代码,并且它在没有无限循环的情况下正常完成。在你的其余代码中一定有其他事情发生。
  • 当然,我在内部 for 循环中有很多停止,但这些并不重要它们可能是。如果这不是您的完整代码,那将很难为您提供帮助...

标签: php loops foreach


【解决方案1】:

如果您想停止循环,只需在 foreach 循环后使用 unset($singlevalue);

【讨论】:

  • 或者使用break;
【解决方案2】:

使用break 退出循环。

阅读材料

break

【讨论】:

  • 嗯,我不是 php noobie...."break" 仅在我想在满足条件时离开循环时才有效,但是我不想离开循环,我希望它一直持续到它结束......但它并没有结束,那是我的问题......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
相关资源
最近更新 更多