PHP数组搜索:如何区分key==0和false?
我注意到PHP array_search函数有一些有趣的地方,想知道是否有人能告诉我如何解决这个问题: 它在中表示,当在数组中找到值时,函数返回键,否则返回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
$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答案没有帮助。