2011-07-31 10 views
19

Znalazłem kod, który wykorzystuje ujemne indeksy tablicowe. Potem próbuję go użyć, nic specjalnego się nie dzieje. Zachowuje się normalnie. Mogę pobrać wszystkie elementy za pomocą standardowej pętli foreach.Ujemny indeks tablicy w PHP

Jaki jest cel używania tych negatywnych wskaźników? A kiedy powinienem go użyć?

Odpowiedz

21

Tablica, w PHP, jest właściwie rodzajem uporządkowanej mapy: można używać liczb całkowitych (pozytywnych lub negatywnych), ale także ciągów znaków, jako klawiszy - i nie będzie dużej różnicy.

13

Ujemne klucze tablicowe nie mają specjalnego znaczenia w PHP, ponieważ (jak każda inna wartość) mogą być kluczami tablic asocjacyjnych.

$arr = array(-1 => 5); 
echo $arr[-1]; 

Niektóre standardowe funkcje biblioteki PHP, (te, które oczekują regularnych tablic z indeksami tylko naturalne Integer) jednak brać negatywne przesunięć w znaczeniu „liczyć od końca zamiast początku”. array_slice jest jednym z takich przykładów.

6

Ujemne indeksy tablicowe nie mają specjalnego znaczenia (tj. Pobierają ostatni/drugi ostatni element itp.) W PHP. Aby uzyskać ostatni element wykorzystania tablicy:

$last = end($array); 

Aby uzyskać przedostatni dodają:

$secondLast = prev($array); 

pamiętać, że te funkcje modify the arrays internal pointer. Aby zresetować go używać:

reset($array); 
+3

można dostać ostatni element bardziej bezpośrednio. '$ someArray [count ($ someArray) - 1]' –

4

From 7.1 onward, mamy ważną i praktyczną szczególny przypadek, czyli przy użyciu składni tablicy dostęp do poszczególnych znaków ciągiem od tyłu:

$str = "123"; 
$empty = ""; 

echo "LAST CHAR of str == '$str[-1]'<br>"; // '3' 
echo "LAST CHAR of empty == '$empty[-1]'<br>"; // '', Notice: Uninitialized string offset: -1 
+0

W PHP5, 'E_NOTICE Niezainicjalizowane przesunięcie łańcucha: -1' –

Powiązane problemy