循环的问题?

foreach($data as $key=>$value)
{
    foreach($twoData as $twoKey=>$twoValue)
    {
        if($value->Id==$twoValue->Id)
        {:可以在这直接实现,结束$twoData循环并跳过$data的本次循环?
            就是break $twoData 然后 continue $data
        }
    }
    //后续代码
}

不要下面的解决方法,功能一样

foreach($data as $key=>$value)
{
    $iaAdd=true;
    foreach($twoData as $twoKey=>$twoValue)
    {
        if($value->Id==$twoValue->Id)
        {
            $isAdd=false;
        }
    }
    if($isAdd)
    {
        //后续代码
    }
}
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
godruoyi
最佳答案

continue 2

3年前 评论
讨论数量: 10
godruoyi

continue 2

3年前 评论

直接一个break不就跳出$twoData了吗

3年前 评论
ytoz (楼主) 3年前
panda-sir

break 2

3年前 评论
ytoz (楼主) 3年前
wanghan

break后面加数字表示跳出几层循环,例:break 2;

3年前 评论

我觉得干脆你把循环的这个代码写成单独一个方法if($value->Id==$twoValue->Id)的时候直接return得了

3年前 评论
ytoz (楼主) 3年前

continue

3年前 评论
ytoz (楼主) 3年前
godruoyi

continue 2

3年前 评论

continue 2; 讲道理还有做过这种需求

3年前 评论

goto 实现

foreach($data as $key=>$value)
{
    foreach($twoData as $twoKey=>$twoValue)
    {
        if($value->Id==$twoValue->Id)
        {
            goto next;
        }
    }
    //后续代码
   next:
}
3年前 评论
panda-sir 3年前
自由与温暖是遥不可及的梦想

首先要知道 你的数据是什么 是集合 还是数组
如果是集合 不用 双层循环

3年前 评论

建议从数据结构上去尽量避免嵌套循环,而不是语法

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!