Php 在多个数组中搜索关键字

Php 在多个数组中搜索关键字,php,arrays,Php,Arrays,我正在使用用户名到密码验证脚本,我现在还不想搞乱数据库连接。所以我只是将某些测试电子邮件和密码放入一些数组中,然后根据这些数组进行验证 我一直在寻找实现这一点的最佳方法,因为我实际上希望将更多相关数据放入每个“用户”数组中 以下是我到目前为止已经开始的内容,您将看到我的拍摄目的: <?php $email = $_POST['email']; // test emails $logins = array('john@smith.com'=>'123456','jane@smith.

我正在使用用户名到密码验证脚本,我现在还不想搞乱数据库连接。所以我只是将某些测试电子邮件和密码放入一些数组中,然后根据这些数组进行验证

我一直在寻找实现这一点的最佳方法,因为我实际上希望将更多相关数据放入每个“用户”数组中

以下是我到目前为止已经开始的内容,您将看到我的拍摄目的:

<?php

$email = $_POST['email'];
// test emails
$logins = array('john@smith.com'=>'123456','jane@smith.com'=>'123456');

if (!array_key_exists($email, $logins)) {
    echo "that email does not exist, stop here.";
}else{
    echo "email exists, continue...";
}
?>

这很好,因为它很简单,但由于我需要向数组中添加更多选项,因此方法更改为:

<?php
// tester accounts
$user1 = array('email'=>'john@smith.com','password'=>'123456','fullname'=>'john smith','handle'=>'johnny');
$user2 = array('email'=>'jane@smith.com','password'=>'123456','fullname'=>'Jane Smith','handle'=>'janeyS');


// credentials passed from a form
$email = $_POST['email'];
$pass = $_POST['pass'];

/* not quite sure how to validate the $user arrays */

?>

显然,用户阵列可能会随着与该用户相关的更多内容而增长。 但我已经习惯于使用数据库连接,而不是直接使用PHP数组


有没有人能像我刚才做的那样,就一封简单的电子邮件/通过多个php数组的验证给我一些建议?或者有更好的方法吗?

将您的用户变成
$users
数组

$success = (bool) array_filter($users, function($user) use ($email, $pass) {
    return $user['email'] == $email AND $user['password'] == $pass;
});
此代码将遍历
$users
数组中的所有用户,并返回与用户名和密码匹配的子集(应为
0
1


因为在PHP中空数组是错误的,所以将其转换为布尔值应该会得到正确的结果。如果您愿意,可以跳过此选项,具体取决于使用环境。

出于对所有神圣事物的热爱,请确保正确加密存储的密码。我说的不是简单的MD5散列。你是说创建一个名为users的数组,并将$user1和$user2数组放在该数组中?@user271619:是的,这将使它更易于使用。