web-dev-qa-db-fra.com

clé de tableau de recherche php et obtenir de la valeur

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

25
Keith Power

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;
68
KingCrunch
<?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];
}

?>
8
Fleshgrinder
array_search('20120504', array_keys($your_array));
6
Marc B