2012-07-14 19 views

cevap

9

Evet, siparişi koruyor. php dizilerini ordered hash maps olarak düşünebilirsiniz.

Öğeleri "dizin oluşturma süresi" tarafından sipariş edilen olarak düşünebilirsiniz. Eğer bir anahtar doesnt şu anda dizide mevcut bir girdi ekliyoruz Örneğin

için
$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 

Özetlemek gerekirse, giriş pozisyonu listesinin sonu olacak. Mevcut bir anahtar için bir girişi güncelliyorsanız, konum değişmez. Yukarıda gösterilen doğal sırayı kullanarak dizilerin üzerinde döngüleri

. next() current() prev() reset() ve arkadaşlarınız, isterseniz foreach dilden beri kullanıldığından nadiren kullanılsa da kullanabilirsiniz. Ayrıca, print_r() ve var_dump() sonuçları doğal dizi sırasını kullanarak da üretir.

Java ile tanıyorsanız, LinkedHashMap en benzer veri yapısıdır.