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