【问题标题】:See if $_POST value matches an Array element value查看 $_POST 值是否与 Array 元素值匹配
【发布时间】:2014-10-12 03:33:19
【问题描述】:

我对 PHP 很陌生。我正在编写一个“测验” php 表单,其中第一个目标是要求用户输入有效的“用户帐户”名称。我已经有了用户帐户列表并创建了一个名为 $users 的数组。我想我需要将验证 php 部分放在表单上方。我已经声明了 $users 数组,在它下面,开始:

if ($_SERVER["REQUEST_METHOD"] == "POST") {

               if (empty($_POST["uName"])) {
                    $uNameErr = "User name is required";
                    } 
                    else {
                         ....do something here
                          )
               }

我不确定是否应该使用 foreach、for 循环或通过数组计数并将发布的 uName(用户名)与 $users 数组的每个元素的值进行比较。我无法使用任何这些方法生成正确的回显语句(作为测试)。我最后一次尝试的是:

if ($_SERVER["REQUEST_METHOD"] == "POST") {

               if (empty($_POST["uName"])) {
                    $uNameErr = "User name is required";
                    } 
                    else {

                        foreach($users as $value){

                            if ($value ===($_POST["uName"])){
                                    echo "needle is in the array";
                                } 
                                    else {
                                echo "needle is not in the array";      
                                }
                        }

非常欢迎对此提供任何帮助!

【问题讨论】:

    标签: php arrays forms for-loop foreach


    【解决方案1】:

    您可以使用in_array。这可以轻松替换您的 foreach 循环。我发现我只在需要对每个值进行操作时才使用 foreach。

    在这种情况下你可以这样做

    if (in_array($_POST['uName'], $users))
    echo 'they are in the array';
    else echo 'they are not in the array';
    

    另外,你可以替换

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    

    if (isset($_POST["uName"]){
    

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多