我有一个数组,如下所示:
array(1) { [0]=> array(1) { ["type"]=> string(4) "item" } }
我在if语句中使用以下代码来查看数组中是否存在“item”但是它没有被评估为true
if (array_key_exists('item', $_SESSION['type']))
{
//do something
}
我做错了什么?
答案 0 :(得分:2)
它的数组在数组中。如果密钥存在,函数array_key_exists
只检查一个深度级别。你的ked深2级,所以它不能返回true,因为只有键“0”。
“item”不是关键,而是价值;你必须使用函数in_array
或array_search
。
而且你应该为它创建自己的函数,因为它的数组在数组中......
答案 1 :(得分:1)
array_key_exists
检查数组的键,而不是值; "item"
是一个值。
要检查是否存在值,请使用in_array
(如果您在找不到项目时不关心密钥)或array_search
(如果您想知道密钥是什么)该项目是)。例如:
if (in_array("item", $_SESSION['type'])) // do something
答案 2 :(得分:1)
您需要使用in_array
来查找数组中是否存在元素。
array_key_exists
检查数组的键是否存在