2010-02-17 32 views
13

Tôi đã một phím được lưu trữ trong một biến như sau:PHP như thế nào để có được giá trị từ mảng nếu Điều quan trọng là trong một biến

$key = 4; 

Tôi cố gắng để có được giá trị tương ứng như sau:

$value = $array[$key]; 

nhưng không thành công. Cứu giúp.

+2

Ý của bạn là "không thành công", có bất kỳ lỗi nào không? – Sampson

+2

Bạn có chắc chắn có một giá trị trong $ array [4]? Bởi vì cú pháp của bạn là chính xác - hãy tìm nơi khác cho vấn đề. – Erik

+2

Bạn có thể thêm một số chi tiết khác không, ví dụ đó là nội dung của $ array? – Dominik

Trả lời

22

Mã của bạn có vẻ là tốt, hãy chắc chắn rằng chìa khóa bạn chỉ định thực sự tồn tại trong mảng hoặc phím như vậy có giá trị trong mảng của bạn ví dụ:

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

Output:

Array 
(
    [0] => 4 
) 

Hiện tại:

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

Output:

Hello There 
+1

print_r ($ array) sẽ tốt hơn - $ array [4] có thể tồn tại nhưng trống. – Erik

0

Nó sẽ làm việc đúng theo ý bạn.

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

Nhưng có thể không có thành phần nào có khóa 4. Nếu bạn muốn để có được những mục fiveth không có vấn đề gì quan trọng nó có, bạn có thể sử dụng 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

Như những người khác đã nói, nó có khả năng thất bại vì chính yêu cầu không tồn tại trong mảng. Tôi có một hàm trợ giúp ở đây để lấy mảng, khóa bị nghi ngờ, cũng như trả về mặc định trong trường hợp khóa không tồn tại.

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

hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan