Php'继续'将告诉它跳过当前的迭代块,但继续循环的其余部分。适用于所有场景(for,while等)。但我想跳过循环的其余部分。我尝试使用break;但不能正常工作。
if ($column_names > 0) {
foreach ($column_names as $heading) {
foreach ($heading as $column_heading)
if($column_heading == "trip_id"){
break;
}
if($column_heading == "number_of_pessengers"){
$column_heading = "No. pessengers";
}
$cellWidth = $pdf->GetStringWidth($column_heading);
$pdf->Cell($cellWidth + 2, 10, $column_heading, 1);
}
}
我的代码有什么问题。
答案 0 :(得分:3)
尝试break 2;
如果要退出嵌套循环,则必须使用“参数”进行中断。
foreach ($column_names as $heading) {
foreach ($heading as $column_heading)
if($column_heading == "trip_id"){
break 2; //break out of both loops.
}
if($column_heading == "number_of_pessengers"){
$column_heading = "No. pessengers";
}
$cellWidth = $pdf->GetStringWidth($column_heading);
$pdf->Cell($cellWidth + 2, 10, $column_heading, 1);
}
}
谁知道你可以使用break
添加号码,continue
也可以使用相同的方式。
http://php.net/manual/en/control-structures.break.php
中断结束当前for,foreach,while,do-while或switch结构的执行。
break 接受一个可选的数字参数,该参数告诉它有多少嵌套的封闭结构被打破。默认值为1,仅打破了直接封闭结构。
干杯
答案 1 :(得分:-1)
如果你想从两个循环中存在,那么你必须保留一个标志变量
if ($column_names > 0) {
foreach ($column_names as $heading) {
$flag = 0;
foreach ($heading as $column_heading){
if($column_heading == "trip_id"){
$flag = 1;
break;
}
if($column_heading == "number_of_pessengers"){
$column_heading = "No. pessengers";
}
$cellWidth = $pdf->GetStringWidth($column_heading);
$pdf->Cell($cellWidth + 2, 10, $column_heading, 1);
}
if($flag == 1) break;
}
或者您可以使用break 2;