2012-06-21 14 views
9

ile yalnızca bir çifti key=>value olan ilişkisel bir dizi var.Tek çifti ilişkilendirmeli dizide anahtar bilmeden değer edinin

Bunun anahtarı bilmiyorum, ama değer almak gerekir:

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

$array[0]

çalışmaz.

Bu değeri nasıl alabilirim?

+0

Gördüğünüz gibi @nickb yayınlanmıştır olarak, birkaç iyi cevaplar var, inanıyorum en veciz ucu(), bir kullanmalıdır. – Umbrella

+1

üzerinde anlaşılan, daha sonra "ninja" dır "array_keys" – Qiao

cevap

27

Dizide yalnızca bir öğe bulunduğundan değeri almak için aşağıdaki işlevlerden herhangi birini de yapabilirsiniz. Eğer array_keys() kullanmak istiyorsanız

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

Ayrıca, yapmanız gerekir:

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

değerini almak için. Eğer AYRICA değeri elde etmek array_pop() veya array_shift() kullanabileceğiniz bazı daha fazla seçenek olarak

,:, sen dizinin tüm değerleri almak için array_values() kullanabilirsiniz Nihayet

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

, daha sonra ilk atın:

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

, diğer birçok alternatif vardır; Bazı aptal, bazı yararlı.

$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

Ben sadece ... bunu yayınlayacağım. http://php.net/manual/en/function.end.php – Umbrella

+1

Bence bunların hepsi mevcut seçenekler. – nickb

4

array_keys() size

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

OP isteğini yerine getirecek OP, anahtar değerini alacak – Umbrella

+0

Yanıtı uygun şekilde güncelledim –

+0

Şimdi, ikinci satırınızda parantez yerine parantezlere ihtiyacınız var. – grossvogel

2

için anahtar Ne istediğiniz ilk öğeyi almak için alacak?

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

Sen array_values ​​

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