如何使用if语句比较单个结果的数组

时间:2016-11-02 05:09:45

标签: php arrays validation

我在每次验证后对用户表单进行验证,我曾经在数组索引中存储“valid”,最后比较它们:

 if(isset($fullname)){
    if ($valid["name"]=="valid"&&$valid["username"]=="valid"&&$valid["password"]=="valid"&&$valid["email"]=="valid") {
            session_start();
            $_SESSION["reg_name"] = $fullname1;
            $_SESSION["reg_username"] = $username1;
            $_SESSION["reg_email"] = $email1;
            $_SESSION["reg_password"] = $password1;
            $_SESSION["reg_gender"] = $_REQUEST['gender'];
            header("location:validation&insertion.php");
    }

我会检查验证然后进行会话。

我的问题是,是否有任何简短的方法可以检查整个数组,如“有效”一样? 我希望你能理解我的问题。如果问得不好,请回复一下。 不要评价为负。请忽略我的语法错误。我讨厌编辑我的问题语法的人。

1 个答案:

答案 0 :(得分:3)

您可以计算 唯一值的数量并检查它是否等于1,然后检查一个值是否为"valid"

if (count(array_unique($valid)) === 1 && $valid["name"] === "valid") {
    session_start();
    $_SESSION["reg_name"] = $fullname1;
    $_SESSION["reg_username"] = $username1;
    $_SESSION["reg_email"] = $email1;
    $_SESSION["reg_password"] = $password1;
    $_SESSION["reg_gender"] = $_REQUEST['gender'];
    header("location:validation&insertion.php");
}

或者只是检查数组中是否找到"notvalid"值:

if (!in_array("notvalid", $valid)) {
    session_start();
    $_SESSION["reg_name"] = $fullname1;
    $_SESSION["reg_username"] = $username1;
    $_SESSION["reg_email"] = $email1;
    $_SESSION["reg_password"] = $password1;
    $_SESSION["reg_gender"] = $_REQUEST['gender'];
    header("location:validation&insertion.php");
}