benni: mehrdimensionales array sortieren

Array
(
    [7] => Array
        (
            [matches] => 48
            [name] => verein_9
            [goals] => 168
            [goals_against] => 303
            [points] => 43
        )

[9] => Array
        (
            [matches] => 48
            [goals] => 258
            [goals_against] => 136
            [name] => verein_8
            [points] => 111
        )

[1] => Array
        (
            [matches] => 48
            [name] => verein_7
            [goals] => 140
            [goals_against] => 289
            [points] => 25
        )

[2] => Array
        (
            [matches] => 48
            [goals] => 142
            [goals_against] => 217
            [name] => verein_6
            [points] => 49
        )

[8] => Array
        (
            [matches] => 48
            [goals] => 285
            [goals_against] => 136
            [name] => verein_5
            [points] => 115
        )

[5] => Array
        (
            [matches] => 48
            [name] => verein_4
            [goals] => 197
            [goals_against] => 182
            [points] => 72
        )

[3] => Array
        (
            [matches] => 48
            [goals] => 204
            [goals_against] => 234
            [name] => verein_3
            [points] => 60
        )

[4] => Array
        (
            [matches] => 48
            [goals] => 221
            [goals_against] => 178
            [name] => verein_2
            [points] => 84
        )

[6] => Array
        (
            [matches] => 48
            [name] => verein_1
            [goals] => 210
            [goals_against] => 150
            [points] => 89
        )

)

  1. Hi!

    Schoenes Array. Moechtest Du uns damit etwas sagen?

    Ich vermisse grad irgendwie eine Beschreibung deines Problems, Deiner Erkenntnis, oder was immer der Grund fuer den Thread hier sein soll.

    *ratlos schau*

    1. Hi!

      Schoenes Array. Moechtest Du uns damit etwas sagen?

      Ich vermisse grad irgendwie eine Beschreibung deines Problems, Deiner Erkenntnis, oder was immer der Grund fuer den Thread hier sein soll.

      *ratlos schau*

      ups ;)

      hallo forum, ich habe ein mehrdimensionales array einer fussballtabelle. allerdings unsotiert. wie bekomme ich diese am besten nach den punkten sortiert?

      1. Hi,

        hallo forum, ich habe ein mehrdimensionales array einer fussballtabelle. allerdings unsotiert. wie bekomme ich diese am besten nach den punkten sortiert?

        Schau Dir im PHP-Manual mal array_multisort an. Damit solltest Du das lösen können.

        Viel Erfolg!

        1. Moin!

          Schau Dir im PHP-Manual mal array_multisort an. Damit solltest Du das lösen können.

          Nein. Array_multisort ist für solche Fälle total unpassend. Es ist wirklich nur dazu da, wenn man ZWEI Arrays nebeneinander hat und sortiert haben will. Und das ist nur ganz selten der Fall.

          Mehrdimensionale Arrays sortiert man üblicherweise, indem man eine eigene Vergleichsfunktion (die den oder die gewünschten Subindices vergleicht) für usort() oder uasort() schreibt.

          - Sven Rautenberg

          --
          "Love your nation - respect the others."
          1. Hi,

            Mehrdimensionale Arrays sortiert man üblicherweise, indem man eine eigene Vergleichsfunktion (die den oder die gewünschten Subindices vergleicht) für usort() oder uasort() schreibt.

            Stimmt, damit gehts viel einfacher.

            LG

      2. Hello,

        schau Dir mal http://www.php.net/manual/de/function.array-multisort.php
        und http://www.php.net/manual/de/function.uasort.php

        an.

        Außerdem besteht noch die Möglichkeit, die Struktur andersherum aufzubauen, dann kann man zum Sortieren der einzelen "Spalten" die normalen Sortierfunktionen benutzen.

        [spiele]
        (
           [matches]
           (
             [7] => 48
             [9] => 48
           )

        [name]
           (
             [7] => verein Z
             [9] => verein A
           )

        [goals]
           (
             [7] => 168
             [9] => 258
           )

        [goals_against]
           (
             [7] => 303
             [9] => 136
           )

        [points]
           (
             [7] => 43
             [9] => 111
           )
        )

        Dann kannst Du mit sort($spiele['points']) das Unterarray [points] sortieren lassen.

        mit

        foreach($spiele['points'] as $key => $val)              # sortierspalte
          {
            echo "<p>\n";

        foreach($spiele as $fieldname => $fieldval)
            {
              echo "$fieldname: ".$spiele[$fieldname][$key]."<br>\n";
            }

        echo "</p>\n"
          }

        nach der Sortierung der Sortierspalte ausgeben.

        Für das Eintragen und Löschen von "Datensätzen" in das Array [spiele] musst Du Dir dann nur jeweils eine Funktion erstellen, damit für jede "Spalte" auch eine "Zeile" vorhanden ist.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. echo $begrüßung;

          schau Dir mal http://www.php.net/manual/de/function.array-multisort.php [...] an.
          Außerdem besteht noch die Möglichkeit, die Struktur andersherum aufzubauen, dann kann man zum Sortieren der einzelen "Spalten" die normalen Sortierfunktionen benutzen.

          array_multisort() erfordert sogar solch eine Umsortierung zu einem Spaltenarray.

          echo "$verabschiedung $name";

          1. Hello,

            schau Dir mal http://www.php.net/manual/de/function.array-multisort.php [...] an.
            Außerdem besteht noch die Möglichkeit, die Struktur andersherum aufzubauen, dann kann man zum Sortieren der einzelen "Spalten" die normalen Sortierfunktionen benutzen.

            array_multisort() erfordert sogar solch eine Umsortierung zu einem Spaltenarray.

            Ach, sieh da. Darum war die Beschreibung für mich bisher nicht verständlich ;-)

            Das "Spaltenarray" hat den Vorteil, dass man sich alle Sortierungen, also nach allen Spalten) gleichzeitig herstellen kann oder eben die "totale Sortierung" über alle Spalten in der Reihenfolge der Spalten im ersten Element durch multisort() erzeugen lasen kann.

            Wie multisort aber reagiert, wenn in einer "Spalte" das korrespondierende Feld eines "Datensatzes" fehlt oder zuviel ist, habe ich noch nicht ausprobiert.

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau