24

知道如何检查一个键是否存在,如果存在,然后从 php.ini 中的数组中获取该键的值。

例如

我有这个数组:

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

$key_to_check = 'AB';

现在,我需要检查$key_to_check 是否存在,如果存在,则获取一个对应的值,在这种情况下将是美式烹饪

4

6 回答 6

43
if(isset($things[$key_to_check])){
    echo $things[$key_to_check];
}
于 2012-09-04T17:27:17.877 回答
30

I know this question is very old but for those who will come here It might be useful to know that in php7 you can use Null Coalesce Operator

if ($value = $things[ $key_to_check ] ?? null) {
      //Your code here
}
于 2016-10-13T05:57:44.150 回答
24
if (array_key_exists($key_to_check, $things)) {
    return $things[$key_to_check];
}
于 2012-09-04T17:27:42.450 回答
2

最简单的方法是这样做:

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

你得到通常的价值:

$value = $things[ $key_to_check ];
于 2012-09-04T17:27:41.677 回答
2

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 才添加空合并运算符 (??),但这可以追溯到 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);
于 2018-10-24T08:27:30.137 回答
0

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

function get_val($key_to_check, $array){
    if(isset($array[$key_to_check])) {
        return $array[$key_to_check]);
    }
}
于 2012-09-04T17:28:23.280 回答