• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Objekt sortieren

  • Ersteller Ersteller C64
  • Erstellt am Erstellt am

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.963
Hallo zusammen,

ich habe mich bisher mit den Sortierfunktionen kaum beschäftigt und stoße gerade an meine aktuelle Grenze ;-)

Folgendes Problem:
Ich habe eine Klasse geschrieben mit der ich am Ende ein Objekt von etwa dieser Form erhalte:
Code:
kurse_abfragen Object
(
    [id] => Array
        (
            [0] => 67
            [1] => 86
            [2] => 92
            [3] => 94
        )
    [freigabe] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 0
            [3] => 1
        )
    [datum] => Array
        (
            [0] => 2011-01-22
            [1] => 2011-02-12
            [2] => 2010-12-22
            [3] => 2010-11-22
        )
)

So nun will ich diese Klasse umsortieren. Sprich ich möchte nach [datum] sortieren, aber nicht nur diesen Array sondern alle anderen dazu passend. Ich hoffe ich hab mich halbwegs verständlich ausgedrückt.
Also zB in meinem Beispiel in Dimension [datum] die [1] und [2] getauscht werden müssten, dann müsste das in allen anderen Dimensionen auch gemacht werden.

Wenn mein Objekt anders aufgebaut wäre, wüsste ich wie das mit usort relativ einfach geht (wenn also die erste Dimension [0],[1],[2] usw. wären und dann die zweite [id],[freigabe] und [datum] und die erste Dimension damit jeweils einen Kurs repräsentiert.
Bei mir ist das eben anders gelöst, weil es in anderer Situation so deutlich mehr Sinn macht und wäre ein riesiger Aufwand das anders zu lösen.
Auch bei der Datenbankabfrage direkt geht das nicht so einfach (es ginge, aber nicht so schön, wenn ich zunächst die Abfrage mit OR zusammenstöpsele und dann nach Datum sortieren lasse), weil ich da die IDs einzeln abfrage und dann eben nach und nach das Objekt fülle...

Hat jemand eine Idee, wie ich das mit 3 Zeilen schnell lösen kann? Sollte doch eigentlich nicht so schwer sein, aber selbst Google konnte mir bisher nicht helfen:-(

Vielen Dank schon mal! ;-)
 
Ah, ok ich habe jetzt gerade erst arsort() gefunden! Ich denke, damit sollte ich es eigentlich hinbekommen ;-)

Edit: Habs jetzt der Einfachheit halber doch direkt in der Datenbank integriert und die entsprechende Funktion angepasst.... bevor ich da rumstöpsel von was ich keine Ahnung habe ;-)
 
Zuletzt bearbeitet:
Dein Array ist falsch aufgebaut...

Du solltest ID als einzigen Index nehmen und dann Sub-Arrays für jede ID mit dem Datum und der Freigabe...

Sprich:

Array
- ID1 (Array)
- - Freigabe
- - Datum
- ID2
- - Freigabe
- - Datum
 
Da muss ich dir vom logischen Aufbau her absolut recht geben. Das ist auch ein spezieller Falle gewesen.
In den anderen Klassen habe ich das dann auch offensichtlich logischer aufgebaut;-)