PHP如何搜索数组键和获取值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

我想知道什么是最好的方式来搜索数组中的键并返回它的值。像array_search,但键为。循环是最好的方法吗?

数组:

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

我正在寻找的值:20120504

提问于
用户回答回答于

关键在于

echo $array[20120504];

如果你不确定,如果密钥存在,请对其进行测试

$key = 20120504;
$result = isset($array[$key]) ? $array[$key] : null;

增加:

$result = @$array[$key] ?: null;

有人可能会说,这@很糟糕,但要严肃对待:这更可读,更直接,不是吗?

更新:使用PHP7我以前的例子可能没有错误消音器

$result = $array[$key] ?? null;
用户回答回答于
<?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];
}

?>

扫码关注云+社区

领取腾讯云代金券