2010-02-17 10 views
13

je une clé stockée dans une variable comme ceci:PHP comment obtenir la valeur du tableau si la clé est dans une variable

$key = 4; 

j'ai essayé d'obtenir la valeur correspondante comme ceci:

$value = $array[$key]; 

mais il a échoué. Aidez-moi.

+2

Que voulez-vous dire "échoué", des erreurs? – Sampson

+2

Etes-vous sûr qu'il y a une valeur dans $ array [4]? Parce que votre syntaxe est correcte - cherchez ailleurs le problème. – Erik

+2

Pourriez-vous ajouter d'autres détails, par exemple quel est le contenu de $ array? – Dominik

Répondre

22

Votre code semble bien, assurez-vous que la clé que vous spécifiez existe vraiment dans le tableau ou telle clé a une valeur dans votre tableau par exemple:

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

Sortie:

Array 
(
    [0] => 4 
) 

maintenant:

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

Sortie:

Hello There 
+1

print_r ($ array) serait mieux - $ array [4] peut exister mais être vide. – Erik

0

Il devrait fonctionner de la façon dont vous l'intention.

$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 il n'y a aucun élément avec la clé 4. Si vous voulez obtenir l'élément fiveth peu importe quelle clé il a, vous pouvez utiliser array_slice:

$value = array_slice($array, 4, 1); 
5
$value = (array_key_exists($key, $array) && !empty($array[$key])) 
     ? $array[$key] 
     : 'non-existant or empty value key'; 
2

Comme d'autres ont déclaré, il est probable défaut car la clé demandée n'existe pas dans le tableau. J'ai une fonction d'aide 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; 
    } 

espérons que cela aide.

Questions connexes