[PHP]:如果未找到任何内容,数组_search()将返回什么?
如果未找到任何内容,数组_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
$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搜索此问题比尝试更快。