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

Der*_*der 21 php arrays

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

例如

我有这个数组:

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

$key_to_check = 'AB';
Run Code Online (Sandbox Code Playgroud)

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

Mih*_*rga 34

if(isset($things[$key_to_check])){
    echo $things[$key_to_check];
}
Run Code Online (Sandbox Code Playgroud)

  • 是不是很慢,因为程序首先查看数组以检查键是否存在,然后在它之后再次查看以获取值? (4认同)

AlT*_*Tak 23

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

if ($value = $things[ $key_to_check ] ?? null) {
      //Your code here
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您只想使用“$value”的值(如果已设置)并且不想检查数组两次,那么这是一个不错的方法。不过,我更喜欢使用“false”而不是“null”,因为我认为它更好地表明我们不会在 if 语句中运行代码。 (4认同)

Jar*_*eer 21

if (array_key_exists($key_to_check, $things)) {
    return $things[$key_to_check];
}
Run Code Online (Sandbox Code Playgroud)

  • 这比接受的答案更正确,因为即使密钥实际存在,如果值为"null",`isset`将返回`false` (8认同)
  • 但是他想要实现它,他的代码是不完整的. (3认同)