[PHP]:如果未找到任何内容,数组_search()将返回什么?

[PHP]:如果未找到任何内容,数组_search()将返回什么?,php,arrays,search,Php,Arrays,Search,如果未找到任何内容,数组_search()将返回什么 我需要以下逻辑: $found = array_search($needle, $haystack); if($found){ //do stuff } else { //do different stuff } 引用的手册页: 返回针的键(如果是) 在数组中找到,FALSE否则 这意味着您必须使用以下内容: $found = array_search($needle, $haystack); if ($found !== f

如果未找到任何内容,数组_search()将返回什么

我需要以下逻辑:

$found = array_search($needle, $haystack);

if($found){
  //do stuff
} else {
  //do different stuff
}

引用的手册页:

返回针的键(如果是) 在数组中找到,
FALSE
否则


这意味着您必须使用以下内容:

$found = array_search($needle, $haystack);

if ($found !== false) {
    // do stuff
    // when found
} else {
    // do different stuff
    // when not found
}
注意我使用了
==运算符,进行类型敏感比较;请参阅和,以了解有关此的更多详细信息;-)

从文档中:

在haystack中搜索针,如果在数组中找到,则返回键,否则返回FALSE


如果未找到任何内容,数组搜索将返回FALSE。如果它确实找到了针,它将返回针的数组键


更多信息请访问:

如果您只是在检查该值是否存在,请访问以下网址。

根据以下官方文档:

警告:此函数可能返回布尔值FALSE,但也可能返回 计算结果为FALSE的非布尔值。请阅读关于 更多信息请参见布尔值。使用===运算符测试 此函数的返回值

请参见此示例:

$foundKey = array_search(12345, $myArray);
if(!isset($foundKey)){
    // If $myArray is null, then $foundKey will be null too.
    // Do something when both $myArray and $foundKey are null.
} elseif ($foundKey===false) {
    // $myArray is not null, but 12345 was not found in the $myArray array.
}else{
    // 12345 was found in the $myArray array.
}

必须小心区分
已找到、索引0
未找到
,为此使用
!==错误
测试。例如:

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$i = array_search('red', $array);
echo ($i !== false) ? $i : -1;  // 1

$i = array_search('blue', $array);
echo ($i !== false) ? $i : -1;  // 0

$i = array_search('blueee', $array);
echo ($i !== false) ? $i : -1;  // -1 i.e. not found
?>


注意我使用了!==运算符,这会进行区分类型的比较
——这正是问题所在。0的计算结果为false。。。谢谢,不客气;;我编辑了我的答案,添加了到手册其他相关页面的链接,顺便说一下:-)现在它返回
NULL
。您可能需要更新答案。@AmalMurali-
array\u search()
仅在提供了无效参数(例如,非数组的变量)时返回
NULL
。如果您提供有效的参数,如果在数组中找不到该值,它将返回
false
。尝试并查看结果比询问要快。检查结果为_int(),因为它返回一个键。@LucM搜索此问题比尝试更快。