嵌套 foreach 循环,在循环内中断

Yas*_*rük 1 php foreach nested-loops

我尝试创建一个带有嵌套 foreach 循环的列表。第一个循环是循环一些数字,第二个循环是循环日期。我想写一个数字到一个日期。所以还有一个函数来检查它。但结果是数字多次写入日期。

出来是这样的:

number 5 is on 2013.01.15;
number 5 is on 2013.01.16;
number 5 is on 2013.01.17;
number 6 is on 2013.01.15;
number 6 is on 2013.01.17;
Run Code Online (Sandbox Code Playgroud)

编码 :

function create_event($numbers,$available_dates) {
  foreach($numbers as $number) {
    foreach($avaliable_dates as $av_date) {

      $date_check= dateCheck($av_date,$number);

      if ($date_check == 0) {
        echo "number ".$number." is on ".$av_date;
        break;
      } else {
        $send_again[] = $number;
      }

    }
  }
  create_event($send_again,$avaliable_dates);
}
Run Code Online (Sandbox Code Playgroud)

我认为内部循环不会中断。

tra*_*ylz 5

break;应该打破内部 foreach 循环!
我看到这种行为的唯一原因是在你的数组中重复数字!(例如$numers=array(5,5,5,6,6);
尝试插入:$numbers=array_unique($numbers);在你的外部 foreach 循环之前
如果你需要打破两个循环(内部和外部)写break 2;而不是break;