2dimensionales array folgender form sortieren

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

  • 2dimensionales array folgender form sortieren

    die erste dimension sind die zeilen eines dokuments
    die zweite dimension sind die spalten.
    $a[0][1]= 27
    $a[0][2]= max
    $a[0][3]= mustermann

    $a[1][1]=44
    $a[1][2]=fritz
    $a[1][3]=froehlich
    usw...

    wie kann ich dieses zweidimensionales array nach der ersten spalte (die mit den zahlen: zuerst soll 44 fritz fröhlich, dann 27 max mustermann ausgegeben werden; nach 44 und 27 reverse sortiert) sortieren?

    danke!

    lg,
    KITT
    Zuletzt geändert von KITT; 26.08.2005, 11:09.

  • #2
    PHP-Code:
    array_multisort() 
    ...sollte Dir helfen.

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      hi!

      versteh ich das richtig. ich muss jetzt jede spalte als ein array speichern, und dann array_multisort() ausführen?

      das funktioniert bei mir net!
      es erscheint die tabelle, aber nur unsortiert.
      PHP-Code:
      //die hilfsarrays speichern die einzelnen spalten
       
      $hilfs_array_0=array(); #Hilfsarray 1 zum Sortieren 
              
      $hilfs_array_1=array(); #Hilfsarray 2 zum Sortieren 
          
      $hilfs_array_2=array();
          
      $hilfs_array_3=array();
          
      $hilfs_array_4=array();
          
      $hilfs_array_5=array();
          
      $hilfs_array_6=array();
          
      $hilfs_array_7=array();
          
              
      $x0=0# nach left_id sortieren  "sortieranweisung" 
              
      $x1=1# nach right_id sortieren "sortieranweisung" 
          
      $x2=2# nach right_id sortieren "sortieranweisung"
          
      $x3=3# nach right_id sortieren "sortieranweisung"
          //$x4=4; # nach right_id sortieren "sortieranweisung"
          //$x5=5; # nach right_id sortieren "sortieranweisung"
          //$x6=6; # nach right_id sortieren "sortieranweisung"
          
      $x7=7# nach right_id sortieren "sortieranweisung"

              
      foreach($zeilen_array as $x3){$hilfs_array_0[]=$x3[$x0];} 
              foreach(
      $zeilen_array as $x3){$hilfs_array_1[]=$x3[$x1];} 
          foreach(
      $zeilen_array as $x3){$hilfs_array_2[]=$x3[$x2];} 
          foreach(
      $zeilen_array as $x3){$hilfs_array_3[]=$x3[$x4];} 
          
      //foreach($zeilen_array as $x3){$hilfs_array_4[]=$x3[$x4];} 
          //foreach($zeilen_array as $x3){$hilfs_array_5[]=$x3[$x5];} 
          //foreach($zeilen_array as $x3){$hilfs_array_6[]=$x3[$x6];} 
          
      foreach($zeilen_array as $x3){$hilfs_array_7[]=$x3[$x7];} 

           
      array_multisort($hilfs_array_0$hilfs_array_1$hilfs_array_2
      $hilfs_array_3$hilfs_array_7$zeilen_array); 
      foreach (
      $zeilen_array as $zeilen_array1) {
          foreach (
      $zeilen_array1 as $zeilen_array2) {
              echo 
      $zeilen_array2;
          }

      lg,
      KITT

      Kommentar


      • #4
        mit usort() war das, soweit ich mich erinner, recht einfach.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          ich probier mal array_multisort:

          array_multisort($zeilen_array, SORT_DESC, SORT_NUMERIC);
          //liefert->
          98
          106
          111
          112
          94
          96
          102
          107
          108
          64

          array_multisort($zeilen_array, SORT_DESC);
          //liefert->
          98
          96
          94
          76
          64
          112
          111
          108
          107
          106
          102

          array_multisort($zeilen_array, SORT_REGULAR);
          //liefert->
          102
          106
          107
          108
          111
          112
          64
          76
          94
          96
          98

          komische sache das ganze!!
          hätts gern von 112 bis 64 runter!

          lg,
          KITT
          Zuletzt geändert von KITT; 29.08.2005, 13:53.

          Kommentar


          • #6
            Würdest du mal PHP-Code posten, aus dem hervorgeht, wie dein Array konkret aussieht, dann könnte man dir sicher auch helfen ;-)
            Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word, Excel
            http://www.lernpilot.de/wbt/

            Kommentar


            • #7
              ausnahmsweise *g*

              $zeilen_array = array();
              $r=-1;
              foreach ($zeile as $z) {
              $zeilen_array[++$r] = explode("<td>", $z);
              }

              //$zeile enthält in jedem feld
              //<tr><td>44</td><td>max</td><td>mustermann</td></tr>
              //mit explode wird das zu einem 2dimensionalen array

              lg,
              KITT

              Kommentar


              • #8
                weiss wirklich niemand, wie man ein 2dimensionales array sortiert!?

                lg,
                KITT

                Kommentar


                • #9
                  Du weißt, dass du in deinem zweidimensionalen Array noch haufenweise HTML-Tags stehen hast?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    du meinst 44</td>max</td> usw?

                    weil nach <td> führ ich ja das explode aus.
                    also kann das 44</td> 22</td>...nicht sortiert werden?

                    lg,
                    KITT

                    Kommentar


                    • #11
                      ok, stimmt. hab mir den quelltext angeschaut von der generierten seite!
                      danke, dass du mnich darauf aufmerksam gemacht hast.

                      hab nún folgendes:
                      PHP-Code:
                      $q=-1;
                      $e=-1;
                      $array_ohne_tags = array();
                      //$zeilen_array enthält tags, und
                      //durch substring entferne ich die restlichen. funktioniert garantiert
                      foreach ($zeilen_array as $za) {
                      ++
                      $q;
                          foreach (
                      $za as $za1) {
                              ++
                      $e;
                              
                      $temp substr($za10, -5);
                              
                      $array_ohne_tags[$q][$e] = $temp;
                          }
                      }
                      foreach (
                      $array_ohne_tags as $aot) {
                          foreach (
                      $aot as $aot2) {
                              echo 
                      $aot2;
                          }

                      aber von den zwei möglichkeiten funktioniert immer noch keine!
                      PHP-Code:

                      //1. möglichkeit
                      function cmp ($a$b){
                      return 
                      $a[0] < $b[0];
                      }
                      usort($array_ohne_tags"cmp"); 
                      PHP-Code:
                      //2. möglichkeit
                      array_multisort($array_ohne_tagsSORT_REGULAR); 
                      PHP-Code:
                      //ausgabe des SORTIERTEN arrays
                      foreach ($array_ohne_tags as $za1) {
                          print 
                      "<tr>";
                          foreach (
                      $za1 as $za2) {
                              print 
                      "<td>".$za2."</td>";
                          }
                          print 
                      "</tr>";

                      und leider ist es immer noch nicht sortiert.

                      irgendwelche tipps?
                      also laut quelltext hab ich nun wirklich alle tags entfernt!

                      lg,
                      KITT

                      Kommentar

                      Lädt...
                      X