2012-06-21 19 views
9

Có một mảng kết hợp với chỉ một cặp key=>value.Nhận giá trị mà không biết khóa trong một cặp-liên kết-mảng

Tôi không biết đó là quan trọng, nhưng tôi cần để có được giá trị của nó:

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

$array[0] không hoạt động.

Làm cách nào để có được giá trị của nó?

+0

Như bạn thấy, có vài câu trả lời tốt, ngắn gọn nhất mà tôi tin là kết thúc(), như @nickb đăng. – Umbrella

+1

đồng ý, đó là "ninja" sau đó 'array_keys' – Qiao

Trả lời

27

Bạn cũng có thể thực hiện một trong các chức năng sau để nhận giá trị vì chỉ có một phần tử trong mảng.

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

Ngoài ra, nếu bạn muốn sử dụng array_keys(), bạn sẽ cần phải làm:

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

Để có được giá trị.

Như một số tùy chọn hơn, bạn cũng có thể sử dụng array_pop() hoặc array_shift() để lấy giá trị:

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

Cuối cùng, bạn có thể sử dụng array_values() để có được tất cả các giá trị của mảng, sau đó đi đầu tiên:

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

Tất nhiên, có rất nhiều lựa chọn thay thế khác; một số ngớ ngẩn, một số hữu ích.

$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

Tôi đã ... chỉ cần đăng bài đó. http://php.net/manual/en/function.end.php – Umbrella

+1

Tôi nghĩ rằng đó là tất cả các tùy chọn có sẵn. – nickb

4

array_keys() sẽ nhận được chìa khóa cho bạn

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

Điều đó sẽ nhận được OP khóa, không phải là giá trị, như OP mong muốn – Umbrella

+0

Cập nhật câu trả lời của tôi cho phù hợp –

+0

Bây giờ bạn cần ngoặc thay vì parens trong dòng thứ hai của bạn. – grossvogel

2

gì bạn muốn là để lấy mục đầu tiên?

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

Bạn nên sử dụng array_values ​​

$newArray = array_values($array); 
echo $newArray[0]; 
Các vấn đề liên quan