如何退出多个foreach

时间:2013-03-19 15:06:31

标签: php

我有一个多个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并再次从//循环2继续,那么是等待退出整个循环吗?如果我放入退出,是的它停止但我的整个页面也停止了。

4 个答案:

答案 0 :(得分:8)

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

[break实际上是一个“参数”,告诉它有多少循环可以突破]

break;(没有号码)与break 1;相同(break 0; break 0;不再有效。

答案 1 :(得分:4)

According to the docs你可以像这样指定一些循环:

break 3;

答案 2 :(得分: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)

答案 3 :(得分:-1)

break;

这会让你走出任何循环。