检查密钥是否存在,并从PHP中的数组中获取相应的值

时间:2012-09-04 17:26:03

标签: php arrays

知道如何检查密钥是否存在以及是否存在,然后从php中的数组中获取此密钥的值。

E.g。

我有这个数组:

$things = array(
  'AA' => 'American history',
  'AB' => 'American cooking'
);

$key_to_check = 'AB';

现在,我需要检查 $ key_to_check 是否存在,如果存在,请获取相应的值,在这种情况下将是美国烹饪

6 个答案:

答案 0 :(得分:31)

if(isset($things[$key_to_check])){
    echo $things[$key_to_check];
}

答案 1 :(得分:21)

if (array_key_exists($key_to_check, $things)) {
    return $things[$key_to_check];
}

答案 2 :(得分:20)

我知道这个问题很老但是对于那些来到这里的人来说,知道在php7中你可以使用Null Coalesce Operator

if ($value = $things[ $key_to_check ] ?? null) {
      //Your code here
}

答案 3 :(得分:1)

最简单的方法是:

if( isset( $things[ $key_to_check ]) ) {
   $value = $things[ $key_to_check ];
   echo "key exists. Value: ${value}";
} else {
   echo "no such key in array";
}

你得到了通常的价值:

$value = $things[ $key_to_check ];

答案 4 :(得分:0)

只需使用isset(),如果您想将其用作函数,可以按如下方式使用:

function get_val($key_to_check, $array){
    if(isset($array[$key_to_check])) {
        return $array[$key_to_check]);
    }
}

答案 5 :(得分:-1)

isset()将返回:
-true if the key exists and the value is != NULL
-false if the key exists and value == NULL
-false if the key does not exist

array_key_exists()将返回:
-true if the key exists
-false if the key does not exist

因此,如果您的值可能为NULL,则正确的方法是array_key_exists。如果您的应用程序不区分NULL和无键,则两者都可以使用,但是array_key_exists总是提供更多选项。

在下面的示例中,数组中没有键返回NULL,但是给定键的NULL值也不返回。这意味着它实际上与isset相同。

直到PHP 7才添加null合并运算符(??),但这可以追溯到PHP 5,也许是4:

$value = (array_key_exists($key_to_check, $things) ? $things[$key_to_check] : NULL);

作为功能:

function get_from_array($key_to_check, $things)
    return (array_key_exists($key_to_check,$things) ? $things[$key_to_check] : NULL);