PHP - 错误答案后退出循环

nav*_*rro 1 php loops

我正在尝试自学PHP.我当前的练习结合了一个表单(不包含在代码中,但它有效),要求用户输入城市名称.循环和if语句将条目与州首都数组进行比较,以返回一个答案,说明该城市是否为州首府.

如果我省略了elseif部分,代码运行正常,但是当用户输入不在数组中的城市时,我别无选择.但是,使用elseif,循环的第一部分不会执行.例如,如果我没有输入"奥尔巴尼" elseif,我会得到"奥尔巴尼是纽约的首都".但是如果我用elseif声明输入它,它会运行循环,直到找到"纽约"并打印出"奥尔巴尼是纽约的首都".

我已经用Google搜索过了,我已经阅读了有关PHP的书籍.我也知道我犯了一个非常基本的错误.任何指导将不胜感激.

for ($i = 0 ; $i < count($stateCapitalNames); $i++)

if ($enteredCity == $stateCapitalNames[$i]) {

print "<p>$enteredCity is the capital of <b>$stateNames[$i]</b>. </p>";


} elseif ($enteredCity != $stateCapitalNames[$i]){

print "<p>$enteredCity is not the capital of a state.</p>";

}

?>
Run Code Online (Sandbox Code Playgroud)

apa*_*dge 8

你可以break用来离开for循环.

您应该查看array_search找到您要查找的索引.如果资本不存在则array_search返回false.

例如

$i = array_search($enteredCity, $stateCapitalNames);
if($i !== false)
{
    echo "<p>$enteredCity is the capital of <b>",$stateNames[$i],"</b>. </p>";
}
Run Code Online (Sandbox Code Playgroud)

  • 这是我会采取的方法,但是如果你试图学习如何迭代数组并在找到你想要的东西时退出,那么休息就是你想要的. (2认同)