php array sortieren

  • PHP

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von N3X.

    php array sortieren

    Hallo Communinty,

    bin in php eig. ganz fit, jedoch hab ich gerade ein problem entdeckt, dass ich nicht lösen kann ...

    habe folgendes Array
    Array ( [0] => Array ( [reihe] => 1 [sitz] => 1 [klasse] => 1 ) [1] => Array ( [reihe] => 2 [sitz] => 1 [klasse] => 2 ) [2] => Array ( [reihe] => 1 [sitz] => 2 [klasse] => 1 ) [3] => Array ( [reihe] => 3 [sitz] => 2 [klasse] => 3 ) [4] => Array ( [reihe] => 2 [sitz] => 3 [klasse] => 2 ) [5] => Array ( [reihe] => 3 [sitz] => 3 [klasse] => 3 ) )


    ich will nun das array so sortiert haben, dass es mir nach reihen und sitze ordnet demnach sollte reihe 1 sitz 1, reihe 1 sitz 2, reihe 1 sitz 3, usw... reihe 2 sitz 1, reihe 2 sitz 2 usw...

    PHP-Quellcode

    1. $sortArray = array();
    2. foreach($this->plaetze as $key => $array) {
    3. $sortArray[$key] = $array['reihe'];
    4. $sortArray[$key] = $array['sitz'];
    5. }
    6. array_multisort($sortArray, SORT_ASC, SORT_NUMERIC, $this->plaetze);



    so funktionierts leider nicht, ich kann nach reihe oder sitz sortieren, aber nicht nach beide...
    so kanns auch nicht funktionieren, schau dir mal deine schleife genauer an, du überschreibst den wert den du vorher in die entsprechende array position schreibst.


    PHP-Quellcode

    1. $sortArray = array();
    2. foreach($this->plaetze as $key => $array) {
    3. $sortArray[$key]["reihe"] = $array['reihe'];
    4. $sortArray[$key]["sitz"] = $array['sitz'];
    5. }
    6. array_multisort($sortArray, SORT_ASC, SORT_NUMERIC, $plaetze);


    ansonsten gibts natürlich die alternative des gewöhnlichen bubbblesorts über die array spalte sitz und reihe. Erst reihe durchsortieren, dann sitz durchsortieren und prüfen ob reihe der sitze identisch sind (dementsprechend erst dann die werte tauschen beim 2. bubblesort).

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „N3X“ ()