1

我有一个数组,当我打印它时,它会给我正确的结果,例如:

[0] => info@mail.com,
[1] => 0909,
[2] => info@mail.com22,
[3] => 0909

现在,当我想检查 info@mail.com 是否在数组中时,它会给我一个错误,即该数组中不存在该值,但是当我尝试例如 info@mail.com22 时,它会给出正确的结果。

这是代码的一小部分:$user 是我要搜索的单词,$arrayname 是数组。

if (array_search(strtolower($user),array_map('strtolower',$arrayname))){
//value exist
}
else{
//value does not exist
}

现在 info@mail.com 不存在它说,而 info@mail.com22 确实存在。

谁有任何想法?

4

2 回答 2

4

array_search返回找到的值的索引。当您搜索第一项时,它返回 0。这也意味着false。更改您的代码,使其读取

if (false !== array_search(strtolower($user),array_map('strtolower',$arrayname))){

另一种方法是使用in_array

if(in_array(strtolower($user),array_map('strtolower',$arrayname))){
于 2013-08-01T14:57:15.337 回答
0

我只是使用is_numeric

if (is_numeric(array_search(strtolower($user), $arrayname)) {
    /* do something */
}
于 2017-10-07T16:17:22.290 回答