Assoziatives, mehrdimensionales Array sortieren
bearbeitet von Matthias ApselHello Jürgen,
#Modellvorstellung:
es gibt eine Verkettung von Elementen. Deren Reihenfolge bleibt erhalten. Erweiterungen können am Ende "automatisch" oder mit [array-push](http://php.net/manual/en/function.) oder am Anfang mit [array_unshift](http://php.net/manual/en/function.array-unshift.php) vorgenommen werden
Die Elemente tragen Eigenschaften:
- Vorgänger (1)
- Nachfolger (2)
- Schlüssel
- Wert
- Datentyp (Elementtyp: Knoten/Blatttypen)
Wenn Datentyp == Knoten ist, zeigt Wert auf eine weitere Liste.
Damit wird dann aus der einfachen Liste (Kette) eine Liste von Listen (Baum, auch unvollständige oder unregelmäßige Baumstruktur).
Selbstverständlich kann man Ketten und Bäume sortieren nach jeweils einer der Eigenschaften ihrer Elemente.
Wie PHP das wirklich baut (Hashlists) interessiert hier nicht. PHP sorgt dafür, dass innerhalb einer Kette (Liste) kein Schlüssel doppelt vorkommen kann. Und PHP sorgt sich um die Allokation/Rückgabe und die Größe des benötigten Speicherplatzes für den Wert ("Payload"). Darum muss sich der Programmierer also nicht kümmern.
#BTW:
Und wer mir auf [meinen Beitrag](https://forum.selfhtml.org/self/2018/sep/22/assoziatives-mehrdimensionales-array-sortieren/1732405#m1732405) ein (-1) gegeben hat, hat Arrays (eigentlich Baumstrukturen) in PHP noch nicht verstanden und was man damit alles anstellen kann ;-)
Allerdings muss ich gestehen, dass der Wiki-Artikel ohne Bilder auch nur schwer zu verstehen ist. Die wollte ich immer nochmal nachliefern zusammen mit den nicht ausgefüllten Absätzen.
Das gab es wohl schon mal im [Archiv](https://forum.selfhtml.org/archiv/2004/8/86318/#m510560). Ist aber leider nicht mehr erreichbar.
Ein paar Fragmente sind noch da:
##Einfaches Array:
[![Einfache Liste](/images/4d77a15d-cd91-452f-a3c1-4bc3f9b6d43f.gif?size=medium "Einfach verkettete Liste")](/images/4d77a15d-cd91-452f-a3c1-4bc3f9b6d43f.gif)
##Mehrfachverkettung:
[![Baumstruktur](/images/cae19cd9-ba84-4a19-b7d9-4abcf8f63f5f.gif?size=medium "Mehrfachverkettung")](/images/cae19cd9-ba84-4a19-b7d9-4abcf8f63f5f.gif)
Liebe Grüße
Tom S.
--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
Assoziatives, mehrdimensionales Array sortieren
bearbeitet von TSHello Jürgen,
#Modellvorstellung:
es gibt eine Verkettung von Elementen. Deren Reihenfolge bleibt erhalten. Erweiterungen können am Ende "automatisch" oder mit [array-push](http://php.net/manual/en/function.) oder am Anfang mit [array_unshift](http://php.net/manual/en/function.array-unshift.php) vorgenommen werden
Die Elemente tragen Eigenschaften:
- Vorgänger (1)
- Nachfolger (2)
(- Elementtyp: Knoten/Blatt)
- Schlüssel
- Wert
- Datentyp
Wenn Datentyp == Knoten ist, zeigt Wert auf eine weitere Liste.
Damit wird dann aus der einfachen Liste (Kette) eine Liste von Listen (Baum, auch unvollständige oder unregelmäßige Baumstruktur).
Selbstverständlich kann man Ketten und Bäume sortieren nach jeweils einer der Eigenschaften ihrer Elemente.
Wie PHP das wirklich baut (Hashlists) interessiert hier nicht. PHP sorgt dafür, dass innerhalb einer Kette (Liste) kein Schlüssel doppelt vorkommen kann. Und PHP sorgt sich um die Allokation/Rückgabe und die Größe des benötigten Speicherplatzes für den Wert ("Payload"). Darum muss sich der Programmierer also nicht kümmern.
#BTW:
Und wer mir auf [meinen Beitrag](https://forum.selfhtml.org/self/2018/sep/22/assoziatives-mehrdimensionales-array-sortieren/1732405#m1732405) ein (-1) gegeben hat, hat Arrays (eigentlich Baumstrukturen) in PHP noch nicht verstanden und was man damit alles anstellen kann ;-)
Allerdings muss ich gestehen, dass der Wiki-Artikel ohne Bilder auch nur schwer zu verstehen ist. Die wollte ich immer nochmal nachliefern zusammen mit den nicht ausgefüllten Absätzen.
Das gab es wohl schon mal im [Archiv](https://forum.selfhtml.org/archiv/2004/8/86318/#m510560). Ist aber leider nicht mehr erreichbar.
Ein paar Fragmente sind noch da:
##Einfaches Array:
[![Einfache Liste](/images/4d77a15d-cd91-452f-a3c1-4bc3f9b6d43f.gif?size=medium "Einfach verkettete Liste")](/images/4d77a15d-cd91-452f-a3c1-4bc3f9b6d43f.gif)
##Mehrfachverkettung:
[![Baumstruktur](/images/cae19cd9-ba84-4a19-b7d9-4abcf8f63f5f.gif?size=medium "Mehrfachverkettung")](/images/cae19cd9-ba84-4a19-b7d9-4abcf8f63f5f.gif)
Liebe Grüße
Tom S.
--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.