33

配列内のキーを検索してその値を返すための最良の方法は何でしょうか。array_searchに似ていますが、キー用です。ループが最善の方法でしょうか?

配列:

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

私が探している価値:20120504

4

5 に答える 5

98

キーはすでに...えーと...キーです

echo $array[20120504];

不明な場合、キーが存在する場合は、それをテストします

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

マイナーな追加:

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

それは悪いことだと主張する人もいるかもしれません@が、それを真剣に保ちましょう。これはより読みやすく、簡単ですよね。

更新:PHP7を使用すると、エラーサイレンサーなしで前の例が可能になります

$result = $array[$key] ?? null;
于 2012-05-05T00:22:23.970 に答える
10
array_search('20120504', array_keys($your_array));
于 2012-05-05T00:21:25.330 に答える
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];
}

?>
于 2012-05-05T00:31:02.527 に答える
-1

これはPHP.netからの直接の例です

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

foreach では、探しているものと各キーを比較できます

于 2012-05-05T00:23:47.110 に答える