簡體   English   中英

在鍵2之后,in_array()似乎沒有檢查

[英]in_array() does not seem to check after key 2

我有一個簡單的函數,如果在數組中找到一個值,應該給我TRUE或FALSE。

function bypass($user, $bypassUsers){
    $users = explode(",", $bypassUsers);
    // trim($users);

    if(in_array($user,$users)){
        return true;
    } else {
        return false;
    }
}

雖然對我而言,當數組中有超過2個值時,所有內容都會顯示,函數返回FALSE,就好像in_array()沒有從鍵[2]中看到的那樣。

任何想法?

如果要對所有元素應用trim,而不是:

$users = explode(",", $bypassUsers);
trim($users);

你應該這樣做:

$users = array_map('trim', explode(',', $bypassUsers));

它將trim()應用於explode()的結果。 之后,您可以在一個語句中返回結果:

return in_array($user, $users, true); 
// third argument determines whether to use == or === for comparison
function bypass($user, $bypassUsers){
    $users = explode(",", $bypassUsers);
    foreach($users as $key=>$usr){
        $users[$key] = trim($usr);
    }

    if(in_array(trim($user),$users)){
        return true;
    } else {
        return false;
    }
}

修剪是問題,因為它適用於字符串而不是數組

暫無
暫無

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

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