如何使用 PHP 打破外循环?

发布于 2024-11-04 23:28:56 字数 264 浏览 1 评论 0原文

我正在寻找打破 PHP 中的外部 for/foreach 循环。

这可以在 ActionScript 中完成,如下所示:

top : for each(var i:MovieClip in movieClipArray)
{
    for each(var j:String in nameArray)
    {
        if(i.name == j) break top;
    }
}

PHP 的等效项是什么?

I am looking to break an outer for/foreach loop in PHP.

This can be done in ActionScript like so:

top : for each(var i:MovieClip in movieClipArray)
{
    for each(var j:String in nameArray)
    {
        if(i.name == j) break top;
    }
}

What's the PHP equivalent?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

时间海 2024-11-11 23:28:56

如果有 2 个嵌套循环:

break 2;

http://php.net/manual/en /control-structs.break.php

In the case of 2 nested loops:

break 2;

http://php.net/manual/en/control-structures.break.php

╄→承喏 2024-11-11 23:28:56

PHP 手册

break 接受一个可选的数字
参数告诉它有多少
嵌套的封闭结构是
打破了。

break 2;

PHP Manual says

break accepts an optional numeric
argument which tells it how many
nested enclosing structures are to be
broken out of.

break 2;
最舍不得你 2024-11-11 23:28:56

您可以只使用break-n语句:

foreach(...)
{
    foreach(...)
    {
        if (i.name == j) 
            break 2; //Breaks 2 levels, so breaks outermost foreach
    }
}

如果您使用的是php >= 5.3,则可以使用标签和goto,与ActionScript中类似:

foreach (...)
{        
    foreach (...)
    {
        if (i.name == j) 
            goto top;
    }
}
top:

但是goto必须谨慎使用。 Goto 是邪恶(被认为是不好的做法)

You can using just a break-n statement:

foreach(...)
{
    foreach(...)
    {
        if (i.name == j) 
            break 2; //Breaks 2 levels, so breaks outermost foreach
    }
}

If you're in php >= 5.3, you can use labels and gotos, similar as in ActionScript:

foreach (...)
{        
    foreach (...)
    {
        if (i.name == j) 
            goto top;
    }
}
top:

But goto must be used carefully. Goto is evil (considered bad practice)

葮薆情 2024-11-11 23:28:56

您可以使用 break 2; 同时跳出两个循环。它与您的“命名”循环示例不太一样,但它可以解决问题。

You can use break 2; to break out of two loops at the same time. It's not quite the same as your example with the "named" loops, but it will do the trick.

海夕 2024-11-11 23:28:56
$i = new MovieClip();
foreach ($movieClipArray as $i)
{
    $nameArray = array();
    foreach ($nameArray as $n) 
        if ($i->name == $n) 
            break 2;
}
$i = new MovieClip();
foreach ($movieClipArray as $i)
{
    $nameArray = array();
    foreach ($nameArray as $n) 
        if ($i->name == $n) 
            break 2;
}
还不是爱你 2024-11-11 23:28:56

使用转到?

for ($i = 0, $j = 50; $i < 100; $i++) 
{
  while ($j--) 
  {
    if ($j == 17) 
      goto end; 
  }  
}
echo "i = $i";
end:
echo 'j hit 17';

Use goto?

for ($i = 0, $j = 50; $i < 100; $i++) 
{
  while ($j--) 
  {
    if ($j == 17) 
      goto end; 
  }  
}
echo "i = $i";
end:
echo 'j hit 17';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文