这是我的阵列:
$int = array (
1 => "Items1",
2 => "Items2",
3 => "Items3",
4 => "Items4"
);
当我这样做时:
var_dump(in_array( 4 , $int ));
它正在返回:bool (false)
。
我读过这是由给定的对象而不是数组引起的,但是没有任何解决方案吗?
答案 0 :(得分:11)
in_array:检查数组中是否存在值。
答案 1 :(得分:6)
如果你想测试关键用途的存在:
array_key_exists($key, $searcharray)
值的in_array
函数测试,而不是键
答案 2 :(得分:5)
in_array
仅检查值,因此在您的情况下检查“Items1”..“Items4”。如果您想知道数组是否有某个键,请使用array_key_exists。
var_dump(array_key_exists(4, $int));
答案 3 :(得分:1)
这是因为$ int不包含该值。
您的数组包含“Items1”,“Items2”......
4是你的关键。
如果要检查密钥是否存在,可以使用
http://php.net/manual/en/function.array-key-exists.php
或
isset($int[4])
答案 4 :(得分:1)
in_array()
检查给定数组中是否存在值 - 而不是键。 4不是数组中的值,但'Items4'是。
答案 5 :(得分:1)
您要搜索的整数'4'是键而非值,
var_dump(in_array("Items4",$int));
应该返回true,或者如果要检查键'4',请使用Array-key-exists