Php $\u post变量foreach循环逻辑问题

Php $\u post变量foreach循环逻辑问题,php,Php,如果在数组中找到输入,则此代码应该检查输入,但它没有。它只适用于第一个索引[0] <?php $array = array( "joe", "sarah", "jaison", "klai", "hanna" ); if ($_POST){ foreach($array as $value){ echo $value; if($_POST["name"] == $value){ echo

如果在数组中找到输入,则此代码应该检查输入,但它没有。它只适用于第一个索引[0]

<?php
$array = array(
    "joe",
    "sarah",
    "jaison",
    "klai",
    "hanna"
);
if ($_POST){
    foreach($array as $value){
        echo $value;
        if($_POST["name"] == $value){
            echo "yeb,i know him !";
            break;
        } else {
            echo "i dont know him";
            break;
        }
    }
}
?>
<p>please enter a name</p>
<form method="post">
    <input name="name" type="text">
    <input type="submit" value="go!">

这里不必使用foreach循环。_数组中有一个函数,用于检查数组中是否存在值。看看这个例子:

$array = array("joe", "sarah", "jaison", "klai", "hanna");

if (isset($_POST['name'])) {
  if( in_array ($_POST["name"], $array) ) {
    echo "yeb,i know him !";
  } else {
    echo "i dont know him";
  }
}

?>
<p>please enter a name</p>
<form method="post">
  <input name="name" type="text">
  <input type="submit" value="go!">
</form>

这里不必使用foreach循环。_数组中有一个函数,用于检查数组中是否存在值。看看这个例子:

$array = array("joe", "sarah", "jaison", "klai", "hanna");

if (isset($_POST['name'])) {
  if( in_array ($_POST["name"], $array) ) {
    echo "yeb,i know him !";
  } else {
    echo "i dont know him";
  }
}

?>
<p>please enter a name</p>
<form method="post">
  <input name="name" type="text">
  <input type="submit" value="go!">
</form>
1.使用而不是

2.直接检查张贴名称是否为空

3.消除断裂

示例输出:-和

1。使用而不是

2.直接检查张贴名称是否为空

3.消除断裂


示例输出:-和

您可以对其使用in_数组函数。这样说:

$array=array("joe",
            "sarah",
            "jaison",
            "klai",
            "hanna");

if ($_POST){
    if(in_array( $_POST["name"], $array )){
        echo "yeb,i know him !";
    }
    else{
        echo "i dont know him";
    }
}

您可以为它使用in_数组函数。这样说:

$array=array("joe",
            "sarah",
            "jaison",
            "klai",
            "hanna");

if ($_POST){
    if(in_array( $_POST["name"], $array )){
        echo "yeb,i know him !";
    }
    else{
        echo "i dont know him";
    }
}

好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最终您将感谢我。它只适用于第一个索引。。。这就是你告诉它要做的,把中断放在你的循环中。不要使用中断,所以删除中断,你想从你的其他部分删除中断。为什么?正如所有其他人提到的,break在第一次迭代之后就打破了循环。良好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最终您将感谢我。它只适用于第一个索引。。。这就是你告诉它要做的,把中断放在你的循环中。不要使用中断,所以删除中断,你想从你的其他部分删除中断。为什么?正如所有其他人提到的,break在第一次迭代后立即中断循环。我建议尽可能对in_数组使用严格模式。我建议尽可能对in_数组使用严格模式。我建议尽可能对in_数组使用严格模式。我建议尽可能对in_数组使用严格模式。