当key存在时,in_array返回false

时间:2012-01-16 10:11:05

标签: php arrays

这是我的阵列:

$int = array (
    1 => "Items1",
    2 => "Items2",
    3 => "Items3",
    4 => "Items4"
);

当我这样做时:

var_dump(in_array( 4 , $int ));

它正在返回:bool (false)。 我读过这是由给定的对象而不是数组引起的,但是没有任何解决方案吗?

6 个答案:

答案 0 :(得分:11)

in_array:检查数组中是否存在

你需要array_key_exists()

答案 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

php.net Array-key-exists