Tom: Neue Variable am Ende eines Array eintragen

Beitrag lesen

Hello Hansi,

es bringt Dich wahrscheinlich weiter, wenn Du dich vom Wort "Array" in PHP nicht in die Irre führen lässt. Unter Array versteht man ja i.d.R. eine geschlossene Speicherstruktur wiederkehrender Elemente. Die Elmente werden dabei derartig serialisiert, bis sie hintereinander weg in den Speicher geschrieben werden können. Es ist sozudagen die Anreihung von Datenstrukturen (C -> struct, Pascal -> record, ...)

Das ist bei "Arrays" in PHP nicht so. Das werden diese als eine Art Baumstruktur angelegt.

Stell Dir eine Kette von Elementen vor, die von einem Anfangspunkt zu einem Endpunkt gespannt wird. Nur diese beiden Punkte sind bekannt. Jeses Kettenelement kennt seinen Nachfolger und seinen Vorgänger. Jedes Element erhält einen Namen (Das ist der Key) und einen Wert(das ist der Value). Außerdem gibt es noch ein paar Verwaltungsfelder, die uns nix angehen.

<img src="http://bitworks.de/~selfHTML/EinfachesArray500.gif" border="0" alt="">

Vielleicht verstehst Du nun auch, wieso es egal ist, ob man ein "numerisches Array" oder ein "assoziatives Array" aufbaut. Im Feld für den Namen steht dann beim assoziativen Array eben einfach keine Zahl, sondern ein String. Und das ist auch der Grund, dass einfach Schlüsselwerte fehlen können oder die Schlüssel in der physischen Kette nicht in der passenden Reihenfolge stehen. Um die Kette in in ihrer physischen Reihenfolge (wenn man davon überhaupt sprechen darf, eigentlich ist sie auch nur logisch) ausgeben lassen will, gibt es z.B. die Funktion foreach().

Nun kann man in das Wert-Feld des Arrays aber nicht nur Skalare eintragen, sondern wieder einen Anfangspunkt für eine neue Kette. Dann hat man ein "Subarray" oder eine zweite Dimension gebaut.

<img src="http://bitworks.de/~selfHTML/VerzweigtesArray500.gif" border="0" alt="">

Es wird uns nun aber auch klar, dass nicht jedes Element mehrere Dimensionen haben muss. das unterscheidet "PHP-Arrays" deutlich von denen der klassischen Programmierung.

Die Subarrays dürfen selber natürlich auch wieder Subarrays besitzen und so weiter...

Ich hoffe, ich konnte Dir damit helfen.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen