php搜索数组键并获取值

Kei*_*wer 26 php

我想知道在数组中搜索键并返回其值的最佳方法是什么.类似于array_search但是用于键.循环是最好的方法吗?

阵:

Array([20120425] => 409 [20120426] => 610 [20120427] => 277
      [20120428] => 114 [20120429] => 32 [20120430] => 304
      [20120501] => 828 [20120502] => 803 [20120503] => 276 [20120504] => 162)
Run Code Online (Sandbox Code Playgroud)

我正在寻找的价值:20120504

Kin*_*nch 71

钥匙已经是......呃... 钥匙

echo $array[20120504];
Run Code Online (Sandbox Code Playgroud)

如果您不确定,如果密钥存在,请测试它

$key = 20120504;
$result = isset($array[$key]) ? $array[$key] : null;
Run Code Online (Sandbox Code Playgroud)

次要补充:

$result = @$array[$key] ?: null;
Run Code Online (Sandbox Code Playgroud)

有人可能会说,这@很糟糕,但要认真对待:这更具可读性和直接性,不是吗?

更新:使用PHP7,我可以在没有错误消音器的情况下使用上一个示例

$result = $array[$key] ?? null;
Run Code Online (Sandbox Code Playgroud)

  • "钥匙已经是......呃...钥匙" - 这真的很有帮助:)在当下的热度中,人们可以真正忘记这一点.谢谢你省时间! (5认同)

Fle*_*der 8

<?php

// Checks if key exists (doesn't care about it's value).
// @link http://php.net/manual/en/function.array-key-exists.php
if (array_key_exists(20120504, $search_array)) {
  echo $search_array[20120504];
}

// Checks against NULL
// @link http://php.net/manual/en/function.isset.php
if (isset($search_array[20120504])) {
  echo $search_array[20120504];
}

// No warning or error if key doesn't exist plus checks for emptiness.
// @link http://php.net/manual/en/function.empty.php
if (!empty($search_array[20120504])) {
  echo $search_array[20120504];
}

?>
Run Code Online (Sandbox Code Playgroud)


Mar*_*c B 6

array_search('20120504', array_keys($your_array));
Run Code Online (Sandbox Code Playgroud)