检查 PHP 数组中是否存在元素


Check if element exists in PHP array

我有一个数组,如下所示:

array(1) { [0]=> array(1) { ["type"]=> string(4) "item" } } 

我在 if 语句中使用以下代码来查看数组中是否存在"item",但它没有被评估为 true

if (array_key_exists('item', $_SESSION['type'])) 
    {
       //do something
    }

我做错了什么?

array_key_exists检查数组的键,而不是值; "item"是一个值。

要检查值是否存在,请使用in_array(如果您不关心键,以防找到该项)或array_search(如果您想知道该项的键是什么)。例如:

if (in_array("item", $_SESSION['type'])) // do something

数组中的数组。函数array_key_exists仅检查一个级别深度(如果密钥存在)。而且你的 ked 有 2 层深,所以它不能返回 true,因为只有键"0"。

而"item"不是键,而是值;你必须使用函数in_arrayarray_search

而且你应该为此创建自己的函数,因为它的数组在数组中......

您需要使用 in_array 来查找数组中是否存在元素。

array_key_exists检查数组的键是否存在