2010-02-14 1 views
9

Bu anahtarın dizideki son öğe olup olmadığını nasıl kontrol edebilirim?Bir anahtarın dizideki son öğe olup olmadığını kontrol etme?

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

değer "c" doğru veya yanlış da anahtar dizisinin son ise bağlı döner bu is_end(2) gibi bazı kod var mı tuşu 2. olurdu? Kullanabileceğim bir çeşit while() bildirimi var mı?

+0

Geri döndürülebilir. Olası kopyalar: http://stackoverflow.com/questions/1892848/return-last-numeric-key-not-value-of-an-array, http://stackoverflow.com/questions/ 216030/son-ek-dizi-öğe-in-the-en-son-yöntem-in-the-en-yöntemi-in-php –

cevap

20

Dizinin sonunda anahtarı almak için end() ve key() kullanabilirsiniz.

$last_index = count($array) - 1; 

Ama bu ilişkilendirilebilir dizilerle çalışmaz:

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

mükemmel! Teşekkürler: D – tarnfeld

+0

belki şöyle bir şey ifade edersiniz: end ($ dizi); $ lastKey = key ($ array); ama bunu sadece 1 cümle içinde yapamazsın ..... – useless

+0

@unless Yeah. Sabit. – Yacoby

5

Sen dizi değerlerini count edebilirsiniz.

+0

Bu normalde kullandığım yöntem mi? en iyisi olduğundan emin değilsiniz, ancak kabul edilen cevap, örneğin bir foreach döngüsü ile kullanıldığında sorunlara/karışıklığa neden olacak gibi görünüyor. kimse herhangi bir fikir sahibi? – andyface

+1

'foreach' ve' end', hem dahili dizi işaretçisini ("geçerli" öğeye) değiştirir, böylece her iki yapının da aynı anda kullanılması karışıktır. –

+0

Tamlık amacıyla: count(), geçerli olmayan anahtarların sayısını döndürür. Dize anahtarları veya 0,1,2,3'ten başka anahtar siparişleriniz varsa, $ dizi [sayısı ($ dizi) -1] de çalışmayacaktır. –

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

bir associative array kullanmayın varsayarsak, sadece count kullanarak, dizinin uzunluğunu kontrol edebilir. 1+last index in array

+0

Tamlık amacıyla: count(), geçerli olmayan anahtarların sayısını döndürür. Dize anahtarları veya 0,1,2,3'ten başka anahtar siparişleriniz varsa, $ dizi [count ($ dizi) -1] çalışmayacaktır. –