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


See if $_POST value matches an Array element value

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

欢迎在这方面提供任何帮助!

您可以使用in_array。这可以很容易地取代你的前臂环。我发现我只在需要对每个值进行运算时使用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"]){