Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组搜索:如何区分key==0和false?_Php - Fatal编程技术网

PHP数组搜索:如何区分key==0和false?

PHP数组搜索:如何区分key==0和false?,php,Php,我注意到PHP array_search函数有一些有趣的地方,想知道是否有人能告诉我如何解决这个问题: 它在中表示,当在数组中找到值时,函数返回键,否则返回false 问题在于,如果您有一个数组,例如: $arr = array(0 => "red", 1 => "blue", ...); 并使用array_search查找red值,然后返回键0 但是,问题是,如果使用函数的结果来查找数组中是否找到了某个元素,那么如果该值返回0(键0是因为实际找到了一个键为0的元素),那么在PHP

我注意到PHP array_search函数有一些有趣的地方,想知道是否有人能告诉我如何解决这个问题:

它在中表示,当在数组中找到值时,函数返回键,否则返回false

问题在于,如果您有一个数组,例如:

$arr = array(0 => "red", 1 => "blue", ...);
并使用array_search查找red值,然后返回键0

但是,问题是,如果使用函数的结果来查找数组中是否找到了某个元素,那么如果该值返回0(键0是因为实际找到了一个键为0的元素),那么在PHP中,该值的处理方式与函数返回false时的处理方式相同。换言之:

if (array_search("red", $arr) == false)
如果与以下内容相同:

if (array_search("red", $arr) == 0)
除了在一种情况下找不到元素外,在第二种情况下,可能找到了键为0的元素

所以我的问题是,这个问题的解决方案是什么

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

在:

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


使用身份比较:
==
。太好了!谢谢。我建议你将此作为答案发布。在你共享的链接中有一个警告框。阅读它。使用triple===,这是php中严格比较的类型。ie`if(数组搜索($arr)===false)`使用身份比较:
===
。太棒了!谢谢。我建议你将此作为答案发布。在你共享的链接中有一个警告框。阅读它。使用triple===,这是php中严格比较的类型。ie`if(array_search(“red”,$arr)===false)`RTFM答案带有FM的完整引号没有帮助。带有FM的完整引号的RTFM答案没有帮助。