2012-06-21 11 views
9

Hay una matriz asociativa con solo una par key=>value.Obtiene el valor sin conocer la clave en una matriz asociativa de un par

no sé que es clave, pero que necesita para obtener su valor:

$array = array('???' => 'value'); 
$value = // ?? 

$array[0] no funciona.

¿Cómo puedo obtener su valor?

+0

Como se puede ver, hay varias buenas respuestas, la más concisa Creo que es extremo(), como @nickb publicada. – Umbrella

+1

de acuerdo, es más "ninja" luego 'array_keys' – Qiao

Respuesta

27

También puede realizar una de las siguientes funciones para obtener el valor ya que sólo hay un elemento de la matriz.

$value = reset($array); 
$value = current($array); 
$value = end($array); 

Además, si desea utilizar array_keys(), que había necesidad de hacer:

$keys = array_keys($array); 
echo $array[ $keys[0] ]; 

para obtener el valor.

Como algunas opciones más, se puede también usar array_pop() o array_shift() para obtener el valor:

$value = array_pop($array); 
$value = array_shift($array); 

Por último, puede utilizar array_values() para obtener todos los valores de la matriz, a continuación, tomar la primera:

$values = array_values($array); 
echo $values[0]; 

Por supuesto, hay muchas otras alternativas; algunos tontos, algunos útiles.

$value = pos($array); 
$value = implode('', $array); 
$value = current(array_slice($array, 0, 1)); 
$value = current(array_splice($array, 0, 1)); 
$value = vsprintf('%s', $array); 
foreach($array as $value); 
list(,$value) = each($array); 
+0

Estaba ... solo voy a publicar eso. http://php.net/manual/en/function.end.php – Umbrella

+1

Creo que esas son todas las opciones disponibles. – nickb

4

array_keys() le llegue la clave para que

$keys = array_keys($array); 
echo $array[$keys[0]]; 
+2

Eso obtendrá OP la clave, no el valor, ya que OP desea – Umbrella

+0

Actualicé mi respuesta en consecuencia –

+0

Ahora necesita corchetes en lugar de parens en su segunda línea. – grossvogel

2

Lo que se quiere es recuperar el primer artículo?

$value = reset($array); 
$key = key($array); 
0

Debe utilizar array_values ​​

$newArray = array_values($array); 
echo $newArray[0]; 
Cuestiones relacionadas