2012-07-14 19 views

Odpowiedz

9

Tak, zachowuje kolejność. możesz myśleć o tablicach php jako ordered hash maps.

Możesz myśleć o elementach jako uporządkowanych według "czasu tworzenia indeksu". Na przykład

$a = array(); 
$a['x'] = 1; 
$a['y'] = 1; 
var_dump($a); // x, y 

$a = array(); 
$a['x'] = 1; 
$a['y'] = 1; 
$a['x'] = 2; 
var_dump($a); // still x, y even though we changed the value associated with the x index. 

$a = array(); 
$a['x'] = 1; 
$a['y'] = 1; 
unset($a['x']); 
$a['x'] = 1; 
var_dump($a); // y, x now! we deleted the 'x' index, so its position was discarded, and then recreated 

Podsumowując, jeśli dodajesz wpis gdzie kluczowym robi obecnie istnieje w tablicy, pozycja wejścia będzie koniec listy. Jeśli aktualizujesz wpis dla istniejącego klucza, pozycja pozostaje niezmieniona.

foreach pętle nad tablicami przy użyciu naturalnego porządku pokazanego powyżej. Możesz także użyć next() current() prev() reset() i znajomych, jeśli chcesz, chociaż są one rzadko używane, ponieważ wprowadzono foreach do tego języka.

również, print_r() i var_dump() wyprowadzają swoje wyniki również przy użyciu naturalnej kolejności tablic.

Jeśli znasz java, LinkedHashMap jest najbardziej podobną strukturą danych.

Powiązane problemy