簡體   English   中英

在多個數組中搜索鍵

[英]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數組中的所有用戶,並返回與用戶名和密碼匹配的子集(應為01 )。

因為PHP中的空數組是的,所以將它轉換為Boolean應該給出正確的結果。 如果需要,可以跳過此操作,具體取決於使用它的上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM