Thomas Schmieder: array_key_exists(), überprüfen Variable in Array

Beitrag lesen

Hallo,

irgendwie habe ich Probleme mit "normalen" und "assoziativen" arrays.
ich habe zwar das php_manual gelesen, und mich aber dann wieder für den falschen befehl entschieden. (statt in_array(), array_key_exists())

Das mag wohl daran liegen, dass PHP den Ausdruck Array für seine Strukturen verwendet, obwohl er hier falsch ist. Es handelt sich bei den "Parrayhps" um Baumstrukturen, also mehrdimensional verkettete Listen. Die Verkettungsdaten (Zeiger) werden dabei verborgen gehalten. Das bedeutet, dass auch ein "normales" PHP-Array schon in jedem Element als Nutzlast den KEY und den VALUE trägt. Wenn man eine Kette jetzt nach den Zeigern abläuft, so wie das manche PHP-Funktionen tun, dann müssen die Elemente nicht in der Reihenfolge der Keys kommen. Es können auch einzelne Elemente in der Kette den Key NULL enthalten, obwohl man noch nicht am Ende angekommen ist.

Mal dir da einfach mal ein Bild, dann lässt es sich einfacher verstehen.

Bei den Assoziativen Arrays ist dann ein weiteres Nutzlast-Element eingetragen, dass zu einer weiterern Verzweigung führt. Jeder Dimension wird in einem eigenen Baum geführt. Das kostet Speicher, macht aber das Sortieren und Finden total schnell.

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

Tom

--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.