problem mit array_multisort...



  • ich habe ein array das folgendermaßen aussieht:

    $allArticles[$i][0] = "Hauptstr.20";
    $allArticles[$i][1] = "22";
    $allArticles[$i][2] = "Peter";
    $allArticles[$i][3] = "20.10.2006";
    

    jetzt würde ich gerne das gesamte array nach schlüssel 3 sortieren. also das jüngste datum soll an erster stelle stehen usw.

    ich hab das so gemacht, hat abér nicht geklappt, da tut sich gar nichts.

    array_multisort($allArticles[3], SORT_NUMERIC,SORT_DESC);
    

    danke und lg


  • Mod

    usort() ist hier dein freund



  • Wie, in der PHP-Doku steht hast Du hier ein Array von Zeilen, aber Du benötigst mehrere Array von Spalten, um array_multisort benutzen zu können. Jetzt kannst Du entweder usort verwenden, oder Du erstellst Dir für jede Sortierung je ein Array, so hab' ich das mal gemacht:

    foreach ($data as $key => $row) {
       $name[$key]   = $row[2];
       $datum[$key]  = $row[3];
    }
    
    array_multisort($datum, SORT_DESC, $name, SORT_ASC, $allArticles);
    

    Ist jetzt nur so hingeschrieben und ungetestet, die Idee dahinter ist einfach, dass Du Dir ein eindimensionales Array erstellst, welches dann mittels array_multisort sortiert wird. Während dieses sortiert wird, werden die anderen Arrays aber ebenfalls umsortiert, entsprechend der Sortierung, die auf das erste Array angewendet wird. Beim zweiten Sortiervorgang dann ebenfalls. Anschliessend solltest Du dann im letzten Array ($allArticles) die richtige Sortierung haben.


Anmelden zum Antworten