Answers:
您正在寻找break语句。
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}
如其他文章所述,您可以使用break关键字。提示但未解释的一件事是该关键字可以采用一个数值来告诉PHP可以突破多少个级别。
例如,如果您有三个相互嵌套的foreach循环试图查找一条信息,则可以执行“ break 3”来摆脱所有三个嵌套循环。这将适用于“ for”,“ foreach”,“ while”,“ do-while”或“ switch”结构。
$person = "Rasmus Lerdorf";
$found = false;
foreach($organization as $oKey=>$department)
{
foreach($department as $dKey=>$group)
{
foreach($group as $gKey=>$employee)
{
if ($employee['fullname'] == $person)
{
$found = true;
break 3;
}
} // group
} // department
} // organization
break;
离开你的循环。
continue;
只要条件仍然为真,就跳过该循环其余部分的任何代码,然后继续进行下一个循环。
您可以使用break关键字。
所有这些都是很好的答案,但是我想提出一个我认为是更好的代码标准的建议。您可以选择在循环条件中使用一个标志,该标志指示是否继续循环并避免break
一起使用。
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
$length = count($arr);
$found = false;
for ($i = 0; $i < $length && !$found; $i++) {
$val = $arr[$i];
if ($val == 'stop') {
$found = true; // this will cause the code to
// stop looping the next time
// the condition is checked
}
echo "$val<br />\n";
}
我认为这是更好的代码实践,因为它不依赖于所break
使用的范围。而是,您定义一个变量,该变量指示是否中断特定循环。当您有许多可能嵌套或不嵌套或顺序的循环时,此功能很有用。
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
foreach ($arr as $val) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}