PHP foreach循环:在匹配某个条件后再循环一次

时间:2018-04-19 08:44:53

标签: php laravel

我正在使用laravel并尝试使用foreach循环获取另一个值之后的数组值。我想知道解决这个问题的最佳做法是什么。到目前为止,我已经尝试了这个

$problems = $request->session()->get('problems');
$i = 0;
foreach ($problems as $prob) {
   $problem = $prob;
   if($request->problem_id == $prob->id){
         return 'Matched';
         die(); 
    }  
    $i++;  
}

2 个答案:

答案 0 :(得分:3)

用类似的东西改变你的foreach

$shouldQuit = false;
foreach ($problems as $prob) {
   $problem = $prob;
   if($shouldQuit)
       break;
   if($request->problem_id == $prob->id){
         $shouldQuit = true;
   }  
}

答案 1 :(得分:1)

尽管@Lucarnosky代码可以更快地处理这个问题。

$problems = array_flip($request->session()->get('problems'));
if(key_exists($request->problem_id, $problems) return 'matched';
return 'problem not found';

php key_exists function

php array_flip function