Sven Rautenberg (outa house): Reihenfolge von assoziativen Arrays

Beitrag lesen

Moin!

jetzt bin ich überrascht: IMHO nach war ein (perl-) hash ein assoziatives Array (auch selfhtml sagt: "<http://de.selfhtml.org/perl/sprache/hashes.htm@title=Ein assoziativer Array, in Perl als Hash bezeichnet(...)>"

Perl ist nicht PHP. Deshalb sind Zitate, die sich auf Perl beziehen und aus einer Zeit resultieren, die lange vor der Verbreitung von PHP liegt, wenig sinnvoll zur Erörterung der hier gestellten Frage.

Und gefragt war doch nach "assoziativen Arrays" - nicht nach PHP Arrays.

Der Titel des Postings lautet: "(PHP) Reihenfolge von assoziativen Arrays".

Also wird es sich wohl um PHP drehen, zumal das OP sogar explizit PHP-Funktionen nennt und nirgendwo impliziert, dass es allgemein um Programmiersprachen gehen soll.

Dass in PHP sogar assoziative Arrays sortiert sind, stellt lediglich eine besondere Implementierung unter PHP dar - eine generelle Forderung dieser Art gibt es für assoziative Arrays, soweit ich weiß, aber nicht.

Das Problem rührt daher, dass "assoziatives Array" ein Bezeichner für etwas ist, was man in vielen Programmiersprachen irgendwie vorfindet, was sich aber im Detail höchst unterschiedlich verhält. Insofern würde ich eben gerade NICHT davon sprechen, dass die Eigenschaft "ist immer unsortiert" untrennbar mit "assoziatives Array" zusammengehört.

"Array" ist eine Datenstruktur, auf die man unter Nennung eines gemeinsamen Variablenbezeichners und zusätzlich eines numerischen Indexwertes auf mehrere gleichartige Datenspeicher zugreifen kann.

"assoziatives Array" erweitert diese Zugriffsmöglichkeit um den Aspekt, dass der Indexwert auch ein String sein kann.

Der Wikipedia-Artikel ist in diesem Zusammenhang leider extrem verbesserungswürdig, wie die Diskussionsseite beweist.

Alles, was darüber hinaus geht, also beispielsweise Annahmen über die Struktur oder Gleichartigkeit der Datenspeicher, über die Sortierung, das Verhalten beim Hinzufügen, mengenmäßige Begrenzungen während der Benutzung, Notwendigkeiten der initialen Größenbestimmung, Workarounds für die nachträgliche Größenerweiterung etc. sind komplett implementierungsabhängig von der jeweiligen Programmiersprache.

Ich persönlich habe in meinem Leben schon diverse Programmiersprachen kennengelernt, und ich kann eben gerade NICHT behaupten, dass ein "Array" in allen Sprachen das gleiche ist und sich gleich verhält, geschweige denn ein "assoziatives Array".

- Sven Rautenberg