+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Numerisches Array mit Objekten sortieren?

  1. #1
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137

    Numerisches Array mit Objekten sortieren?

    Hallo TPler,

    ich habe ein numerisches Array in dem wiederum ein Objekt liegt.
    Nun möchte ich das numerische Array nach einer Eigenschaft des Objekts sortieren- also hier nach PLZ.
    Hat jemand eine Idee wie man das umsetzen kann?

    PHP-Code:
    Array
    (
        [
    0] => stdClass Object
            
    (
                [
    firmennr] => xxx
                
    [plz] => xxxx
                
    [strasse] => xxxx
                
    [ort] => xxxx
                
    [telefonbuch] => xxxx
                
    [telefax] => xxxx
                
    [mobilfunknr] => 
                [
    email-adresse] => 
            )

        [
    1] => stdClass Object
            
    (
                [
    firmennr] => xxx
                
    [plz] => xxxx
                
    [strasse] => xxxx
                
    [ort] => xxxx
                
    [telefonbuch] => xxxx
                
    [telefax] => xxxx
                
    [mobilfunknr] => 
                [
    email-adresse] => 

            )
    ...

    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  2. #2
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Ich habe mir jetzt selbst geholfen indem ich beim Aufbau des Arrays keine Objekte, sondern ebenfalls ein Array benutzt habe und habe dann keín Problem mit dem Sortieren.
    Trotzdem bleibt die Frage interessant - diese Konstellation habe ich schon häufig gehabt und bisher noch nicht gelöst.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  3. #3
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Schau mal hier: http://de.php.net/manual/de/function...-multisort.php
    ...die erste UCN ein bissel umstricken und du solltest das haben, was du suchst

    Gruss
    Jan

  4. #4
    Guest Strogij hilft, wo's geht Strogij hilft, wo's geht
    Registriert seit
    Aug 2002
    Beiträge
    2.233
    Oder sowas wie:
    PHP-Code:
    $array1 = ...; // Dein Array
    $array2 = ...; // Leeres Array

    for ($i 0$i sizeof($array1); ++$i) {
    $array2[$i] = $array1[$i]->plz;

    $array2 kann man dann wie gewohnt sortieren und die Schlüssel sind auf das $array1 übertragbar. Hast du wohl auch so gemacht, wenn ich mich nicht täusche.

  5. #5
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Zitat Zitat von Strogij
    Hast du wohl auch so gemacht, wenn ich mich nicht täusche.
    Fast. :-)
    Die Objekte kommen aus der Datenbank. Ich habe einfach statt mysql_fetch_object mysql_fetch_array genommen und dann kann ich das Array sortieren.
    Trotzdem arbeite ich viel lieber mit Objekten. Aber es schient keine andere Lösung zu geben, als die Objekte in assoziative Arrays umzuwandeln und dann zu sortieren. Dann werde ich mir mal eine Routine basteln copy_object_to_assoc(); .

    Vielen Dank für die Unterstützung.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  6. #6
    Guest Strogij hilft, wo's geht Strogij hilft, wo's geht
    Registriert seit
    Aug 2002
    Beiträge
    2.233
    Ich glaube einfacher/schneller wäre es, wenn du nicht kopierst, sondern extra noch fetch_array() für das Sortieren auf die gleiche SQL-Abfrage anwendest.
    Was ist denn mit dem Vorschlag von Stuck? Das scheint ohne Kopien auszukommen.

  7. #7
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Zitat Zitat von DSB
    Aber es schient keine andere Lösung zu geben, als die Objekte in assoziative Arrays umzuwandeln und dann zu sortieren.
    Wieso? Steht doch im Manual, was man machen kann... -> http://de3.php.net/uasort ...wie immer in die User Notes schauen und ein bissel umschreiben
    Zitat Zitat von DSB
    Dann werde ich mir mal eine Routine basteln copy_object_to_assoc();
    das wäre dann get_object_vars ... nur verstehe ich das ganze nicht, wenn du sowieso den Kram aus einer DB holst, kannst du doch auch im query sortieren, oder warum geht das nicht?

    Gruss
    Jan

  8. #8
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Mit den Beispielen experimentiere ich noch herum. Bis jetzt habe ich aber noch ncihts erreicht.
    Zitat Zitat von Stuck Mojo
    nur verstehe ich das ganze nicht, wenn du sowieso den Kram aus einer DB holst, kannst du doch auch im query sortieren, oder warum geht das nicht?
    Gehen tut das, habe ich ja weiter oben geschrieben.

    Es gibt aber viele Stellen, an denen ich mit lieber mit Objekten arbeite.
    Ich mach mir zu nutze, das man leere Klassen und Objekte definieren kann und ihnen zur Laufzeit dynamisch Eigenschaften andichten kann.
    Als Beispiel: ich will in der DB etwas suchen und empfange aus einem Formular Parameter. Nun erzeuge ich ein leeres Objekt und weise nur die Paramter zu, die gefüllt wurden (die leeren Felder werden ignoriert).
    Eine Funktion bildet mir aus einem beliebigen Objekt den Abfragestring und liefert mir direkt die Ergebnismenge.
    Eine weitere Funktion färbt z.B. die Treffer in der Ergebnismenge ein, indem sie das Objekt auswertet (object_vars).
    Diese kleine Funktionssammlung hat sich als sehr nützlich und superbequem erwiesen, weil ich in jedem neuen Projekt auf nichts mehr achten muss.
    Such-Objekt erzeugen, Funktion aufrufen, fertig.
    Programmierer sind doch faul.

    Deshalb will ich das nicht generell auf Arrays umbauen.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51