Ist die Reihenfolge eines assoziativen Arrays in PHP garantiert?

9

Wenn ich eine foreach-Schleife über ein assoziatives Array in PHP führe, ist die Reihenfolge, in der es ausgeführt wird, die Reihenfolge, in der es definiert ist.

Zum Beispiel:

%Vor%

Ausgaben:

%Vor%

Während

%Vor%

Ausgaben:

%Vor%

Meine Frage lautet also: Ist dieses Verhalten auf einer Spezifikationsebene definiert? Kann ich mit einiger Sicherheit feststellen, dass dieses Verhalten in zukünftigen PHP-Versionen nicht geändert wird?

    
Asuah 04.06.2009, 14:32
quelle

4 Antworten

17

Aus dem PHP-Handbuch

  

Ein Array in PHP ist eigentlich ein geordnetes   Karte. Eine Map ist ein Typ, der assoziiert wird   Werte zu Schlüsseln. Dieser Typ ist optimiert   für verschiedene Verwendungszwecke; es kann sein   behandelt als ein Array, Liste (Vektor),   Hash - Tabelle (eine Implementierung von a   Karte), Wörterbuch, Sammlung, Stapel,   Warteschlange und wahrscheinlich mehr.

und

  

Arrays sind geordnet. Die Reihenfolge kann sein   geändert durch verschiedene Sortierung   Funktionen.

So können Sie sicher sein (zumindest momentan), dass die Bestellung aufrechterhalten wird. Ich wäre sehr überrascht, wenn sich dieses Verhalten ändern würde, weil es klar ausgesprochen wird und aufgrund dessen wird eine riesige Menge Code darauf beruhen.

    
Tom Haigh 04.06.2009, 14:36
quelle
0

Dies wird sich nie ändern.

    
Andrew Jahn 04.06.2009 14:37
quelle
0

Da Arrays immer geordnet sind und der einfachste und schnellste Weg zur Iteration des Arrays vom ersten zum letzten Element geht (es gibt also keinen Grund, das Verhalten von foreach () zu ändern), können Sie sein ziemlich sicher, dass sich dieses Verhalten nicht ändert.

    
Fortega 04.06.2009 14:38
quelle
0

Ihre Fragen scheinen so zu sein, als kämen Sie von der Programmierung in Perl, wo "Arrays" nicht garantiert in der Reihenfolge sind, in der Sie sie erstellt haben. Aber in PHP wurde es immer bestellt und wird immer sein, sonst wird viel Code kaputt gehen.

    
Brent Baisley 04.06.2009 14:39
quelle

Tags und Links