[英]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.