2011-09-22 12 views

Odpowiedz

5

W ten sposób tablice PHP działają po wyjęciu z pudełka. Każda para klucz/wartość ma numer porządkowy, więc zamówienie reklamowe zostanie zapamiętane. Można łatwo sprawdzić to sam:

http://ideone.com/sXfeI

+3

Ach, ale można, powiedzmy, wstawić element zanim innego elementu bez usuwania/ponownego dołączania elementów * masowo *? –

+3

Niestety nie. Aby zrobić coś takiego, musisz zachować tablicę indeksowaną z numerami, aby można było używać funkcji takich jak "array_splice" do wstawiania losowych przesunięć. A jeśli potrzebujesz również mieć dostęp do elementów za pomocą klucza słownika, prawdopodobnie będziesz potrzebował jakiejś tablicy odwzorowania, która mapuje klucze dyktujące do odpowiadających im wartości w tablicy indeksowanej. –

3

Jeśli rozumiem opis w docs Pythona prawidłowo, to tak. Tablice PHP są mapami tylko zamawianymi:

Tablica w PHP jest w rzeczywistości uporządkowaną mapą. Mapa jest typem, który łączy wartości z kluczami. Ten typ jest zoptymalizowany pod kątem kilku różnych zastosowań; może być traktowany jako tablica, lista (wektor), tablica asocjacyjna (implementacja mapy), słownik, kolekcja, stos, kolejka i prawdopodobnie więcej. Jako wartości tablicowe mogą należeć inne tablice, drzewa i wielowymiarowe tablice są również możliwe.

PHP Array docs

+0

Co stanie się po wstawieniu klucza, który już istnieje? Wydaje się, że klucz pozostaje w miejscu, ale czy jest to gwarantowane? http://ideone.com/iTVMW – Casebash

+1

Zastępuje wartość w offsecie, w którym już jest. –

2

tablice PHP działa w ten sposób domyślnie.

$arr = array('one' => 1, 'two' => 2, 'three' => 3, 'four' => 4); 
var_dump($arr); // 1, 2, 3, 4 

unset($arr['three']); 
var_dump($arr); // 1, 2, 4 

$arr['five'] = 5; 
var_dump($arr); // 1, 2, 4, 5 
Powiązane problemy