2012-06-21 3 views
9

C'è una matrice associativa con una coppiakey=>value.Ottieni valore senza conoscere la chiave nell'array associativo a una coppia

Non so è la chiave, ma ho bisogno di ottenere il suo valore:

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

$array[0] non funziona.

Come posso ottenere il suo valore?

+0

Come si può vedere, ci sono diverse buone risposte, il più laconico credo sia end(), come pubblicato @nickb. – Umbrella

+1

d'accordo, è più "ninja" quindi 'array_keys' – Qiao

risposta

27

È inoltre possibile eseguire una delle seguenti funzioni per ottenere il valore poiché è presente un solo elemento nell'array.

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

Inoltre, se si desidera utilizzare array_keys(), avresti bisogno di fare:

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

per ottenere il valore.

Come alcune altre opzioni, è anche possibile utilizzare array_pop() o array_shift() per ottenere il valore:

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

Infine, è possibile utilizzare array_values() per ottenere tutti i valori dell'array, poi prendere la prima:

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

Naturalmente ci sono molte altre alternative; alcuni sciocchi, alcuni utili.

$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

Stavo ... sto per pubblicarlo. http://php.net/manual/en/function.end.php – Umbrella

+1

Penso che quelle siano tutte le opzioni disponibili. – nickb

4

array_keys() otterrà la chiave per voi

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

Questo otterrà OP la chiave, non il valore, come OP desidera – Umbrella

+0

Aggiornato la mia risposta di conseguenza –

+0

Ora avete bisogno di parentesi invece di parentesi nella seconda linea. – grossvogel

2

Quello che vuoi è quello di recuperare il primo articolo?

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

Si dovrebbe usare array_values ​​

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