PHP Laravel 2次破解foreach循环

有三个foreach循环,最后一个foreach循环有一个if条件,

foreach ($candidate_data as $cd) {
        $edu_data=DB::table('applicant_edu_info')
        ->where('applicant_id',$cd->ap_id)
        ->get();
            foreach($edu_data as $ed){
                foreach($neededDegree as $nd){
                    if($neededDegree->edu_degree_id==$ed->edu_degree_id){
                        $education_data[$cd->ap_id]=$neededDegree->name;

                    }
                }
            }
    }

我需要的是,如果条件是真的,那么我想打破两个循环,并继续从第一个foreach循环运行。 请帮忙。


在PHP中,您可以使用可选的中断参数。

使用break 2;

foreach ($candidate_data as $cd) {
        $edu_data=DB::table('applicant_edu_info')
        ->where('applicant_id',$cd->ap_id)
        ->get();
            foreach($edu_data as $ed){
                foreach($neededDegree as $nd){
                    if($neededDegree->edu_degree_id==$ed->edu_degree_id){
                        $education_data[$cd->ap_id]=$neededDegree->name;
                         break 2;

                    }
                }
            }
    }

break 2将打破两个循环。

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


您可以使用跳转到程序中其他section跳转。

foreach ($candidate_data as $cd) {
    $edu_data=DB::table('applicant_edu_info')
    ->where('applicant_id',$cd->ap_id)
    ->get();
        foreach($edu_data as $ed){
            foreach($neededDegree as $nd){
                if($neededDegree->edu_degree_id==$ed->edu_degree_id){
                    $education_data[$cd->ap_id]=$neededDegree->name;
                    goto targetLocation;

                }
            }
        }
      targetLocation:
}

使用goto你可以在任何你想要的地方设定你的target

链接地址: http://www.djcxy.com/p/53077.html

上一篇: PHP Laravel break foreach loop 2 times

下一篇: Foreach loop (laravel blade)