Ilja: sortierung zweidimensionales array

yo,

mir macht ein zweidimensionales array ein wenig kopfzerbrechen. ich füge folgendermaßen in das array ein:

$mein_array[] = array($v1,
                      $v2,
                      $v3,
                      $v4
                     );

jetzt will ich, je nachdem welchen link ein benutzer klickt, dass array nach den jeweiligen spalten sortieren. und das macht mir ein wenig kopfzerbrechen, wie ich da am besten vorgehe. habe es mit array_multisort() versucht, aber die ergebnisse sehen nicht sehr vielversprechend aus. hat jemand rat ?

Ilja

  1. Hallo,

    $mein_array[] = array($v1,
                          $v2,
                          $v3,
                          $v4
                         );

    jetzt will ich, je nachdem welchen link ein benutzer klickt, dass array nach den jeweiligen spalten sortieren.

    Was sind in Deinem Fall die Spalten?

    und das macht mir ein wenig kopfzerbrechen, wie ich da am besten vorgehe. habe es mit array_multisort() versucht, aber die ergebnisse sehen nicht sehr vielversprechend aus.

    Die Funktion array_multisort erwartet ein Array von Spalten, also z.B.:
    $myarr[] = array("Mueller", "Adam", "Maier");
    $myarr[] = array("Kurt", "Bettina", "Ulrike");

    für:
    Mueller  Kurt
    Adam     Bettina
    Maier    Ulrike

    Wenn Du ein Array von Zeilen hast, also:

    $myarr[] = array("Mueller", "Kurt");
    $myarr[] = array("Adam", "Bettina");
    $myarr[] = array("Maier", "Ulrike");

    dann musst Du es vorher in ein Array von Spalten transponieren. Siehe http://www.php.net/manual/en/function.array-multisort.php -> Example 3. Sorting database results.

    viele Grüße

    Axel

    1. Hi Axel,

      $myarr[] = array("Mueller", "Kurt");
      $myarr[] = array("Adam", "Bettina");
      $myarr[] = array("Maier", "Ulrike");

      dann musst Du es vorher in ein Array von Spalten transponieren. Siehe http://www.php.net/manual/en/function.array-multisort.php -> Example 3. Sorting database results.

      nur als Ergänzung - für diese Art von Arrays halte ich den Einsatz von usort() für einfacher:

        
      usort($myarr, create_function('$a, $b', 'return strcmp($a[0], $b[0]);'));  
      
      

      Ilja müsste dann nur noch den Index im create_function()-Aufruf entsprechend dynamisch setzen.

      Gruß,
      Andreas.

      1. yo,

        danke euch beiden, werden versuchen, es in den nächsten tagen umzusetzen. habe mir einen nerv eingeklemmt und mein linker arm ist ein wenig taub. als erst mal wenig tippen...

        Ilja

        1. Hallo Ilja.

          danke euch beiden, werden versuchen, es in den nächsten tagen umzusetzen. habe mir einen nerv eingeklemmt und mein linker arm ist ein wenig taub. als erst mal wenig tippen...

          Gute Besserung wünsche ich!

          Einen schönen Dienstag noch.

          Gruß, Ashura

          --
          Last Tears Keep Calling
          See Angels Falling
          Black Shadows In Your Head
          And One Eye For The Dead