in_array不使用关联数组php

时间:2014-02-06 16:01:36

标签: php arrays

我正在尝试使用in_array()来检查数组中的某个键,然后回显它的值。

$array = array("abc" => "123", 
               "def" => "456", 
               "ghi" => "789");

if(in_array("abc", $array))
    echo $allowed["abc"];

它应该回显123,但我得到:

in_array() expects parameter 2 to be array, null given

您可以将关联数组与in_array()

一起使用

我也试过了array_key_exists(),但它也出现了同样的错误?

愚蠢的错误是愚蠢的

$array应该是$this->array ...漫长的一天,可能会删除我吗?

5 个答案:

答案 0 :(得分:1)

您应该使用array_key_exists代替。

答案 1 :(得分:1)

尝试

if (isset($array["abc"]))

答案 2 :(得分:0)

in_array检查数组中是否存在该值。要检查密钥是否存在,您应该使用isset。

答案 3 :(得分:0)

试试这个

$array = array("abc" => "123", 
               "def" => "456", 
               "ghi" => "789");


    if (isset($array["abc"]))
        echo $array["abc"];

答案 4 :(得分:0)

您正在引用$ allowed并尝试回显$ allowed('abc')的值,该值不存在。

用$ array替换为$ allowed:

$array = array("abc" => "123", 
               "def" => "456", 
               "ghi" => "789");

if(array_key_exists("abc", $array))
{
    echo 'Found! '. $array["abc"]; // Update this line to $array
}    

或者,您可以执行array_flip(),然后可以使用in_array:

if( in_array("abc", array_flip($array) ))
{
    echo 'Found! '. $array["abc"];
}