web-dev-qa-db-fra.com

PHP comment obtenir la valeur d'un tableau si la clé est dans une variable

J'ai une clé stockée dans une variable comme ceci:

$key = 4;

J'ai essayé d'obtenir la valeur pertinente comme suit:

$value = $array[$key];

mais ça a échoué. Aidez-moi.

14
Ash

Votre code semble aller, assurez-vous que la clé spécifiée existe vraiment dans le tableau ou qu'une clé a une valeur dans votre tableau

$array = array(4 => 'Hello There');
print_r(array_keys($array));
// or better
print_r($array);

Sortie:

Array
(
    [0] => 4
)

À présent:

$key = 4;
$value = $array[$key];
print $value;

Sortie:

Hello There
22
Sarfraz
$value = ( array_key_exists($key, $array) && !empty($array[$key]) ) 
         ? $array[$key] 
         : 'non-existant or empty value key';
5
code_burgar

Comme d'autres l'ont dit, cela échouera probablement car la clé demandée n'existe pas dans le tableau. J'ai une fonction d'assistance ici qui prend le tableau, la clé suspectée, ainsi qu'un retour par défaut dans le cas où la clé n'existe pas. 

    protected function _getArrayValue($array, $key, $default = null)
    {
        if (isset($array[$key])) return $array[$key];
        return $default;
    }

j'espère que ça aide. 

2
sab0t

Cela devrait fonctionner comme prévu.

$array = array('value-0', 'value-1', 'value-2', 'value-3', 'value-4', 'value-5' /* … */);
$key = 4;
$value = $array[$key];
echo $value; // value-4

Mais peut-être n'y a-t-il aucun élément avec la clé 4. Si vous voulez obtenir le cinquième élément, peu importe la clé, vous pouvez utiliser array_slice :

$value = array_slice($array, 4, 1);
0
Gumbo