Ключ массива поиска php и получить значение
Мне было интересно, что лучший способ поиска ключей в массиве и вернуть его значение. Что-то вроде array_search, но для ключей. Будет ли цикл наилучшим?
Массив:
Array([20120425] => 409 [20120426] => 610 [20120427] => 277
[20120428] => 114 [20120429] => 32 [20120430] => 304
[20120501] => 828 [20120502] => 803 [20120503] => 276 [20120504] => 162)
Я ищу: 20120504
Ответы
Ответ 1
Ключ уже есть ключ... ehm...
echo $array[20120504];
Если вы не уверены, если ключ существует, проверьте его
$key = 20120504;
$result = isset($array[$key]) ? $array[$key] : null;
Незначительное дополнение:
$result = @$array[$key] ?: null;
Можно утверждать, что @
плох, но держите его серьезным: это более читаемо и прямолинейно, не?
Обновление: с PHP7 мой предыдущий пример возможен без шумоглушителя
$result = $array[$key] ?? null;
Ответ 2
<?php
// Checks if key exists (doesn't care about it 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];
}
?>
Ответ 3
array_search('20120504', array_keys($your_array));
Ответ 4
Вот пример прямо из PHP.net
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
в foreach вы можете сделать сравнение каждого ключа с тем, что вы ищете