PHP 3-Dimensionalen Array sortieren

  • Hey Leutz,


    ich bin grad eindeutig zu dumm, kann mir kurz jemand auf die Sprünge helfen?


    Ich habe einen Array à la

    Code
    $players[0-9]["index"]


    Den Index möchte ich nach Zahl absteigend sortieren. Ich habs weder mit sort noch mit asort gescheit gebacken gekriegt, kann jemand aushelfen? ^^


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Wenn du es autmatisch machen lassen willst:



    So manuell:


  • Nee, also mal hier so als Beispiel. Gehen wir davon aus, ich habe folgenden Array:


    Code
    $players[1]["index"] = 2$players[2]["index"] = 0$players[3]["index"] = 4$players[4]["index"] = 12$players[5]["index"] = 9...


    Würde ich diesen Array gerne nach Wert des Indexes sortieren, so dass später eine Reihenfolge von

    Code
    12, 9, 4, 2, 0, ...


    entsteht.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Und wie sag ich ihm da, dass er den Index sortieren soll? Da der dreidimensionale Array ja durchaus mehr als einen Index hat, kann die Funktion doch nicht riechen, wonach ich sortieren möchte? :p


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Und wie sag ich ihm da, dass er den Index sortieren soll? Da der dreidimensionale Array ja durchaus mehr als einen Index hat, kann die Funktion doch nicht riechen, wonach ich sortieren möchte? :p


    Naja mit array_multisort geht das nicht du müsstest die daten in ein extra array packen (1D) via foreach danach mit array_multisort sortieren und danach wieder an dein 3D array übergeben. Du kannst auch bei dem eintrag von array_multisort bei php.net schauen da gibt es achon fertif funktionen.

  • Und wie sag ich ihm da, dass er den Index sortieren soll? Da der dreidimensionale Array ja durchaus mehr als einen Index hat, kann die Funktion doch nicht riechen, wonach ich sortieren möchte? :p


    Wenn "index", dein erster index ist im 3 Dimensionalen Array, dann sortiert er es :D


    Wenn nicht, musst du es so machen:


    PHP
    $tmp = array();
    for($i=0; $i<count($players); $i++)
    {
        $tmp[$i] = $players[$i]["index"];
    }
    array_multisort($tmp, SORT_DESC);
    //und jetzt ist das Array $tmp sortiert :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habs nun mit usort gelöst.

    Code
    function cmp($a, $b) {  return $b["index"] - $a["index"]}
    usort($array, "cmp");


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen