2010-02-17 9 views
13

he almacenado una clave en una variable de este modo:PHP cómo obtener el valor de la matriz si la clave está en una variable

$key = 4; 

me trató de obtener el valor correspondiente de este modo:

$value = $array[$key]; 

pero falló. Ayuda.

+2

¿Qué quiere decir "error", algún error? – Sampson

+2

¿Estás seguro de que hay un valor en $ array [4]? Como tu sintaxis es correcta, busca el problema en otra parte. – Erik

+2

¿Podría agregar más detalles, por ejemplo, cuál es el contenido de $ array? – Dominik

Respuesta

22

Su código parece estar bien, asegúrese de que la tecla se especifica que realmente existe en la matriz o tan clave tiene un valor en el array por ejemplo:

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

Salida:

Array 
(
    [0] => 4 
) 

Ahora:

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

Salida:

Hello There 
+1

print_r ($ array) sería mejor - $ array [4] puede existir pero estar vacío. – Erik

0

Se debe trabajar la manera que quería.

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

Pero tal vez no existe un elemento con la clave 4. Si usted quiere conseguir el artículo fiveth no importa en qué tono tiene, puede utilizar 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

Como se ha dicho otros, es probable que está fallando porque la clave solicitada no existe en la matriz. Aquí tengo una función auxiliar que toma la matriz, la clave sospechosa, así como una devolución predeterminada en caso de que la clave no exista.

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

Espero que ayude.

Cuestiones relacionadas