2010-05-17 43 views
11

Tôi thường xuyên sử dụng những điều sau đây để có được lần thứ hai để giá trị cuối cùng trong một mảng:Nhận thứ hai với giá trị cuối cùng trong mảng

$z=array_pop(array_slice($array,-2,1)); 

Tôi có thiếu một hàm php để làm điều đó chỉ trong một bước hoặc là tốt nhất tôi có?

Trả lời

38
end($array); 
$z = prev($array); 

Điều này hiệu quả hơn giải pháp của bạn vì nó dựa trên con trỏ bên trong của mảng. Giải pháp của bạn thực hiện một bản sao không cần thiết của mảng.

+0

Tôi thích điều này, tốt hơn câu trả lời của tôi. :) –

13

Đối với số lượng được lập chỉ mục, các mảng liên tiếp, hãy thử $z = $array[count($array)-2];

Edit: Đối với một lựa chọn chung chung hơn, nhìn vào câu trả lời của Artefecto.

+0

Bạn đánh bại tôi vào nó! =) – pr1001

+0

Tôi vừa mới may mắn ... :) –

+4

Chỉ hoạt động nếu mảng được lập chỉ mục bằng số, nó bắt đầu bằng 0 và không có khoảng trống. – Artefacto

1

Hoặc tại đây, nên hoạt động.

$reverse = array_reverse($array); 
$z = $reverse[1]; 

Tôi đang sử dụng này, nếu tôi cần nó :)

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