[英]Search keys inside multiple arrays
我只是使用用戶名到密碼驗證腳本,我還不想搞亂數據庫連接。 所以我只是將某些測試電子郵件和密碼放入某些數組中,然后再對這些數組進行驗證。
我遇到了最好的方法,因為我實際上想把更多相關的數據放到每個“用戶”數組中。
這是我到目前為止所開始的,你會看到我正在拍攝的內容:
<?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中的空數組是假的,所以將它轉換為Boolean應該給出正確的結果。 如果需要,可以跳過此操作,具體取決於使用它的上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.