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
。