Arraysortierung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Arraysortierung

    Hallo,

    ich habe folgende Funktion geschrieben:

    PHP-Code:
    function sortieren_desc($wert$array)
             {
             
    $speicher = array();
             foreach(
    $array as $key => $row)
                       {
                       
    array_push($speicher$row[$wert]);
                       }
             
    array_multisort($speicherSORT_DESC$array);
             return 
    $array;
             } 
    Damit kann ich ein Array das ich aus einer Datenbankabfrage erstelle sortieren. Leider kann ich nur nach einem Wert sortieren. Ist es möglich, dass es auch nach 2 Werte sortiert werden kann?

    Gruß

  • #2
    Manual lesen:
    Die angegebenen Arrays werden als Spalten einer Tabelle behandelt, welche nach Reihen sortiert werden - ähnlich der SQL Klausel ORDER BY. Das erste Array ist auch das erste in der Sortierreihenfolge. Die in diesem Array gleichen Zeilen (Werte) werden anhand des nächsten angegebenen Arrays sortiert, usw.
    Frag mich nur warum du nicht direkt in der Abfrage sortierst ... ist nämlich ungleich schneller.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Weil die Werte aus der DB modifiziert werden müssen...

      PHP-Code:
      function zwei_sortieren($wert$wert2$array)
               {
               
      $speicher = array();
               foreach(
      $array as $key => $row)
                         {
                         
      array_push($speicher$row[$wert]);
                         }
               
               
      $speicher2 = array();
               foreach(
      $array as $key => $row)
                         {
                         
      array_push($speicher2$row[$wert2]);
                         }

               
      array_multisort($speicherSORT_DESC$speicher2SORT_DESC$array);
               return 
      $array;
               } 
      Das ist meiner neuer Versuch:

      Scheint zu funktionieren. Stimmt es auch von der Theorie her?
      Zuletzt geändert von Tarlar; 08.10.2007, 19:32.

      Kommentar


      • #4
        Du musst die Datensätze ja nicht zwei mal durchlaufen - ein foreach reicht. Was heißt die Datensätze müssen modifiziert werden?
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          Es werder mehrere DBs in einem Array verrechnet. Das ist mit einer SQL-Abfrage nicht machbar...

          Kommentar


          • #6
            Also mein Datenbankserver fragt mir mit {Datenbank}.{Tabelle} auch mehrere Datenbanken gleichzeitig ab ...
            Code:
            SELECT * FROM db.table JOIN db2.table2 ...
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Und dabei verrechnet er auch gleich mehrere Spalten mit Hilfe einer Funktion miteinander?

              Kommentar


              • #8
                Fährt dein dings mit schmalz oder mit grütze?

                Soll heissen was ist verrechnen und welche funktion.
                Viele leute unterschätzen die macht von SQL funktionen
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar

                Lädt...
                X