php – array_search返回错误的密钥
参见英文答案 >
PHP in_array() / array_search() odd behaviour2个
我有这个数组: $ar = [ 'key1'=>'John','key2'=>0,'key3'=>'Mary' ]; 而且,如果我写: $idx = array_search ('Mary',$ar); echo $idx; 我明白了: key2 我在网上搜索过,这不是隔离问题.似乎当关联数组包含0值时,如果未设置strict参数,则array_search将失败. 还有不止一个bug warnings,都被拒绝了动机:“array_search()默认情况下进行松散比较”. 好的,我使用严格的参数来解决我的小问题…… 但我的问题是:有一个体面的,有效的理由,为什么在松散比较’玛丽’== 0或
您需要将第三个参数设置为true才能使用严格比较.请看下面的解释:
array_search使用==在搜索期间比较值 FORM PHP DOC
第二个元素是0,在搜索过程中字符串被转换为0 简单测试 var_dump("Mary" == 0); //true var_dump("Mary" === 0); //false 解决方案使用严格选项来搜索相同的值 $key = array_search("Mary",$ar,true); ^---- Strict Option var_dump($key); 产量 string(4) "key3" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |