我没有发现程序中可能出现的问题。
我有一个像这样的数组
$arr = array("1", "urgent", "4", "low", "15", "avg");
当我使用
搜索此数组时$key = array_search("4", $arr);// Working
它给了我该元素的索引;
但是当我搜索“1”时,它并没有给我任何索引。
$key = array_search("4", $arr); // Not working here - for searching "1"
可能是什么问题。
谢谢
答案 0 :(得分:5)
http://ideone.com/e1n3r您的代码运行正常。它返回key == 0,这是键,其中存储“1”。
要获得0和false
之间的差异,您应使用===
运算符,或其相反的!==
:
$arr = array("1", "urgent", "4", "low", "15", "avg");
$key1 = array_search("1", $arr);
var_dump($key1 === false); // false (value exists)
var_dump($key1 !== false); // true (value exists)
$key21 = array_search("21", $arr);
var_dump($key21 === false); // true (value does not exist)
var_dump($key21 !== false); // false (value does not exist)
答案 1 :(得分:0)
array_search返回数组的键值。
$arr = array("1", "urgent", "4", "low", "15", "avg");
$key = array_search("4", $arr);
// give output is 2 which is key value
$key = array_search("1", $arr);
//give output is 0 which is key value
答案 2 :(得分:0)
请记住,0
在php中被评估为FALSE
。
所以..
if($index = array_search("1",$arr)) {
//will actually evaluate to false
}
如果您以这种方式使用它并认为它不起作用,因为条件在技术上没有失败,则值被评估为FALSE
。
答案 3 :(得分:0)
我认为你以错误的方式使用$key
。 $key = 0
现在,如果你做布尔评估,它将作为假。您应该使用if($key >= 0)
或if(is_int($key))