2010-02-14 65 views
9

Làm cách nào để kiểm tra xem khóa này có phải là phần tử cuối cùng trong một mảng không?Kiểm tra xem một khóa có phải là phần tử cuối cùng trong một mảng không?

$array = array("a","b","c"); 

Giá trị "c" sẽ có chìa khóa 2. Có một số mã như is_end(2) này trả về đúng hay sai tùy thuộc nếu họ quan trọng là cuối cùng của mảng? Có một số loại tuyên bố while() tôi có thể sử dụng không?

+0

Các bản sao có thể có: http://stackoverflow.com/questions/1892848/return-last-numeric-key-not-value-of-an-array, http://stackoverflow.com/questions/ 216030/phương pháp tốt nhất-of-get-the-key-of-the-last-added-array-item-in-php –

Trả lời

20

Bạn có thể sử dụng end()key() để lấy khóa ở cuối mảng.

end($array); 
$lastKey = key($array); 
+0

hoàn hảo! Cảm ơn: D – tarnfeld

+0

có thể bạn có nghĩa là một cái gì đó như: end ($ array); $ lastKey = key ($ array); nhưng bạn không thể làm tất cả chỉ trong 1 câu ..... – useless

+0

@unless Yeah. Đã sửa. – Yacoby

5

Bạn có thể count các giá trị mảng:

$last_index = count($array) - 1; 

Nhưng điều này sẽ không làm việc với mảng kết hợp.

+0

đây là phương pháp tôi thường sử dụng? không bao giờ chắc chắn nếu nó là tốt nhất, nhưng câu trả lời chấp nhận có vẻ như nó sẽ gây ra vấn đề/nhầm lẫn nếu sử dụng với một vòng lặp foreach ví dụ. bất cứ ai có bất kỳ cái nhìn sâu sắc? – andyface

+1

'foreach' và' end' đều thay đổi con trỏ mảng nội bộ (thành phần tử "hiện tại"), do đó, sử dụng cả hai cấu trúc cùng một lúc sẽ làm rối tung mọi thứ. –

+0

Vì mục đích hoàn thành: count() trả về số lượng các mục không phải là Khóa hợp lệ. Nếu bạn có các phím chuỗi hoặc các lệnh chính khác hơn 0,1,2,3, .. $ array [count ($ array) -1] sẽ không hoạt động. –

1
$is_2_lastone = array_pop(array_keys($array)) === 2; 
0

Giả sử bạn không sử dụng associative array, bạn chỉ có thể kiểm tra độ dài của mảng, sử dụng count. Nó sẽ trả lại 1+last index in array

+0

Vì mục đích hoàn chỉnh: count() trả về số lượng các mục không phải là các Khóa hợp lệ. Nếu bạn có các phím chuỗi hoặc các lệnh chính khác hơn 0,1,2,3, .. $ array [count ($ array) -1] sẽ không hoạt động. –

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