array_multisort

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • array_multisort

    Hallo,

    habe ein 2 dimensionales array mit Elementen der Art

    PHP Code:
    $data["Spalte"][1
    Jetzt will ich das gesamte Array nach einer "Spalte" sortieren. Mit array_multisort bleibt dabei der Index auch bei den anderen Spalten erhalten. Das Problem ist nur, dass die Anzahl der Spalten variabel sein soll, bei array_multisort aber alle Spalten(1-d Arrays) als Argument aufgerufen werden müssen:

    PHP Code:
    array_multisort($data["Spalte1"], $data["Spalte2"], ...); 
    Ich kann die einzelnen Spalten natürlich über Schleifen alle ausgeben, aber halt nicht im Funktionsargument

    Vielleicht hat jemand von Euch eine Idee?!

    Grüße

    Manuel

  • #2
    Sollte glaub mit foreach() gehen.

    Comment


    • #3
      und wie genau??

      Comment


      • #4
        hast du überhaupt mal auf den link geklickt?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Comment


        • #5
          Jab!

          habs aber trotzdem nicht hinbekommen, deshalb habe ich nachgefragt. Wie schon gesagt: Die Elemente in einer Schleife ausgeben ist kein Problem. Aber als Parameter einer Funktion ??

          Comment


          • #6
            Dir muss man alles echt vorkauen...

            PHP Code:
            foreach($var1 as $var2){
             
            func($var2);

            Comment


            • #7
              Ja klar, weil ich genau das nicht wollte!!!

              So wird die funktion mehrfach aufgerufen (je nachdem wie viele Elemente das Array hat).
              Aber es sollen in dem Argument alle Array-Elemente drin stehen.

              Comment


              • #8
                dann nimm halt n implode oder speicher die werte der reihe nach in einer variable...

                Comment


                • #9
                  das geht nicht, da die Arrays nach einem implode zu einem String geworden sind, und die Argumente Arrays sein müssen!

                  Comment


                  • #10
                    und ist es strafbar in der Fkt n explode zuerst auszuführen

                    Comment


                    • #11
                      nochmal:

                      PHP Code:
                      array_multisortarray1array2array3, ....) 
                      mit variabler Anzahl arrays! Ist das möglich?
                      In einen String einlesen ist nicht möglich, da array1 usw. ja wiederum arrays sind. Dann speichere ich nur das Wort "Array".
                      und danach ein explode, dann habe ich einen Array in dem überall das Wort "Arrray" drinsteht. Sorry, ich wünschte es würde so gehen...

                      Comment


                      • #12
                        array_multisort() wird zum Sortieren von entweder mehreren Arrays auf einmal, oder eines multidimensionalen Arrays (entsprechend einer von mehreren Dimensionen) benutzt. Bei der Sortierung werden die Schlüsselassoziationen beibehalten.

                        In einen String einlesen ist nicht möglich, da array1 usw. ja wiederum arrays sind. Dann speichere ich nur das Wort "Array".
                        Ich glaube das hätte dir auch keiner ernsthaft vorgeschlagen

                        Comment


                        • #13
                          Hab's geschafft

                          habs mit der Funktion eval hinbekommen:
                          PHP Code:
                          $arg "array_multisort(";
                          foreach (
                          $spaltennamen  as $name)
                          {
                                 
                          $arg .= "\$array['".$name."'], ";
                          }
                          $arg .= "SORT_DESC);";
                          eval (
                          $arg); 
                          Trotzdem danke für eure Anregungen!
                          -----
                          Der Vollständigkeit halber: Ich schreibe mir gerade eine Klasse zurecht, die ähnlich Funktionen bieten soll, wie eine Datenbank aber nur csv-Dateien verwendet. Und um anhand einer Spalte zu sortieren, habe ich das benötigt.

                          Comment

                          Working...
                          X