Je me demandais quelle est la meilleure façon de rechercher des clés dans un tableau et de renvoyer sa valeur. Quelque chose comme array_search mais pour les clés. Une boucle serait-elle le meilleur moyen?
Tableau:
Array([20120425] => 409 [20120426] => 610 [20120427] => 277
[20120428] => 114 [20120429] => 32 [20120430] => 304
[20120501] => 828 [20120502] => 803 [20120503] => 276 [20120504] => 162)
Valeur que je recherche: 20120504
La clé est déjà la ... ehm ... clé
echo $array[20120504];
Si vous n'êtes pas sûr, si la clé existe, testez-la
$key = 20120504;
$result = isset($array[$key]) ? $array[$key] : null;
Ajout mineur:
$result = @$array[$key] ?: null;
On peut dire que @
est mauvais, mais restez sérieux: c'est plus lisible et simple, non?
Mise à jour: Avec PHP7, mon exemple précédent est possible sans le silencieux d'erreur
$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];
}
?>
array_search('20120504', array_keys($your_array));