PHP - Bir dizinin son öğesinden önce eleman almak nasıl?

4 Cevap php

Nasıl PHP5 bir dizinin son elemanı önce eleman alabilirim?

4 Cevap

$array[count($array)-2]

O (sıfır) bir sayısal indisli bir dizi olmalıdır. Bu çalışması için en az 2 unsurlar olmalıdır. (Tabii ki)

Bu bile bu dizinin üzerinde çalışacak:

$array[0] = "hello";
$array[5] = "how";
$array[9] = "are";

end($array);
echo prev($array); // will print "how"

Sayısı kullanılarak diğer çözümleri () dizinizin endeksleri sırayla gitmek olduğunu varsayıyoruz; dizi işaretçisini taşımak uca ve önceki kullanarak, gerçek değerleri olsun. Sayısı (yukarıdaki dizide) yöntemi kullanmayı deneyin ve başarısız olur.

array_slice ikinci argüman olarak negatif bir ofset alır. Bu size ikinci son öğeyi içeren tek bir öğe dizi verecektir:

$arr = array(1,2,3,4,5,6);
array_slice($arr, -2, 1));

Eğer sadece kendi üzerinde tek değer istiyorsanız, birkaç seçeneğiniz vardır. Bir ara değişkeni kullanarak sakıncası yoksa o zaman sadece [0] ile ilk değerini almak ya array_pop veya array_shift arayabilir, her ikisi de referans geçirilen bir değişken gerekir veya katı modda uyarı alırsınız.

Yoksa sadece array_sum veya biraz hacky ama tek öğe diziler için çalışıyor array_product, kullanabilirsiniz.

associative dizi ve sayısal dizi için çalışacak bir yöntem array_pop() dizinin sonundaki elemanı pop kullanmaktır.

$last = array_pop($array);
$second_last = array_pop($array);

// put back the last
array_push($array, $last);