-3

我有一个多重 foreach (循环),如下所示:

foreach($Arr1 as $k1=>$v1){ //Loop 1

    foreach($v1 as $k2=>$v2) { //Loop 2

        foreach($v2 as $k3=>$v3) { //Loop 3

            if($v3==0){ echo "Yes! Found Zero & Exit the Entire Loop"; break; }

        }

    }
}

在我的代码中,我确实输入了“break”,但我只退出 //Loop3 并再次从 //Loop 2 继续,所以这是等待退出整个循环吗?
如果我退出,是的,它会停止,但我的整个页面也会停止。

4

4 回答 4

8

用于break 3;打破所有循环。

[break实际上需要一个“参数”,它告诉它要跳出多少个循环]

break;(没有数字)与break 1;不再有效)相同。break 0; break 0;

于 2013-03-19T15:08:52.143 回答
4

根据文档,您可以指定许多循环来打破这样的:

break 3;
于 2013-03-19T15:09:15.557 回答
4

我可能会使用函数重写它

function multiLoop($array)

    foreach ($array as $k1 => $v1) {

      foreach ($v1 as $k2 => $v2) {

        foreach ($v2 as $k3 => $v3) {

          if ($v3 == "0") {
            return $k3;
          }

      }
    }
  }
}

echo "0 found at " . multiLoop($input)
于 2013-03-19T15:11:17.543 回答
-1
break;

这将使您摆脱任何循环。

于 2013-03-19T15:07:57.700 回答