查看$ _POST值是否与Array元素值匹配

时间:2014-10-12 03:33:19

标签: php arrays forms for-loop foreach

我是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数组的每个元素的值进行比较。我无法使用任何这些方法生成正确的echo语句(作为测试)。我试过的最后一次是:

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";      
                                }
                        }

对此非常欢迎!

1 个答案:

答案 0 :(得分:2)

您可以使用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"]){