dedlfix: Arrays sortieren

Beitrag lesen

Hi!

Es ist kein Array, denn in einem Array kann man die Position eines Elementes über seinen Index bestimmen. In einem Array kann kein Index fehlen, da dieser sich ja aus der Position ergibt. In einem Array darf man bedenkenlos über den Index iterieren. Das ist in PHP nicht zulässig, da hier Index-Werte fehlen können/dürfen.

Schon klar, es ist genau hingesehen jedoch ebensowenig ein Array wie eine verkettete Liste. Beiden Modellen fehlen wesentliche Eigenschaften.

Vom Array-Modell ist wenigstens der Zugriff über einen Schlüssel geblieben. Von der verketteten Liste sehe ich gar keine Eigenschaft.

Ein Array reiht gleichartige Elemente oder Elementegruppen (Mehrdimensionales Array) im Speicher an oder suggeriert dies zumindest nach außen.

Das gleichartige Element beim PHP-Array heißt PHP-Variable. Dass diese jeden Typ annehmen kann, ist ein wesentliches Merkmal aller PHP-Variablen, also sind sie in der Hinsicht gleichartig.

In anderen Systemen können Arrays auch Strings beliebiger Länge speichern. Diese wären nach deiner Definition auch nicht gleichartig, weil kaum anzunehmen ist, dass für jedes Element der maximal mögliche Speicher reserviert wird. Das Problem löst man, indem man eher Verweise auf Strings speichert. Trotzdem sieht es nach außen hin wie ein Array aus. Das gleiche Prinzip könnte man auf PHP übertragen: Arrays speichern Verweise auf Variablen. Damit sind die Elemente nun wirklich schön gleichartig. Bleibt nur das "Problem" des nicht vorhandenen Index.

Der Begriff "Array" für das vorliegende Datenkonstrukt ist in PHP schlichtweg falsch gewählt. Aber damit müssen wir nun leben, da er sich auch als Typbezeichner in der Sprache wiederfindet.

Er ist jedenfalls "richtiger" als verkettete Liste. Wenn du es genauer benennen willst, nenn es Dictionary. Ein Synonym dafür ist assoziatives Array. (Hashtabelle, wie ich gestern sagte, trifft es nicht, weil nach außen hin kein Hashing zu sehen ist.)

Lo!