Variablen nach Wert mit PHP sortieren ?

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

  • Variablen nach Wert mit PHP sortieren ?

    Hi,

    Kann man Variablen die verschiedene Werte besitzen mit einem PHPBefehl sortieren und kann man gleichzeitig sagen das z.B nur die 3 höchsten ausgegeben werden sollen ?

  • #2
    jo, würde gehen.
    dein ansatz dazu?

    Kommentar


    • #3
      klar.

      Kommentar


      • #4
        sehe ich auch kein Problem ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          ich frage mich:
          - was für Variablen?
          - welche Werte?
          - wie sortieren?
          Wer einen Weisen dumm fragt, wird eine kluge Antwort bekommen. Es ist nur die Frage, ob er sie auch versteht.

          Kommentar


          • #6
            Hier die Lösung

            So könnte deine Funktion aussehen (hoffe, dass ich deine Frage richtig verstanden habe) :
            PHP-Code:
            <?php
            $max_outputs
            =5// Wie viele Ausgeben
            $sortierwerte='1;8;3;2;8;22;12'//Zu sortierende Werte
            $sortierarray=array();
            $sortierarray=explode(';',$sortierwerte); // Werte in ein Array lesen
            arsort($sortierarray); // in absteigender Reihenfolge sortieren
            //$sortierarray=asort($sortierarray); // in aufsteigender Reihenfolge sortieren
            while(list(,$val) = each($sortierarray)){
                
            $i++;
                echo 
            $val "<br>"// Sortierte Werte ausgeben
                // Wenn maximale Ausgabe erreicht, dann raus aus der Schleife 
                
            if($i>=$max_outputs) exit; 
            }
            ?>
            EDIT:
            by TobiaZ: Jaja, vernünftig zu kommentieren ist soooo schwer!
            Zuletzt geändert von TobiaZ; 21.01.2005, 17:38.
            PHP-Code:
            echo 'PHP FREAK!!!' 

            Kommentar


            • #7
              also ich habe folgendes vor:

              Ich habe eine Reihe von Arrays - ein Wert des Arrays ist eine summe aus mehreren Preisen. Jetzt will ich die 7 höchsten summen mit php sortieren und ausgeben - gleichzeitig aber die anderen werte des ursprungsarrays beibehalten - ist das möglich ? wenn ja wie sieht eine solche Sortierung aus ?
              (mit der von FloMX kann ich leider nichts anfangen weil die in einem array zusammengefügt sind und dann dort sortiert werden)

              Kommentar


              • #8
                der flo darf erstmal seinen code umbrechen.

                tschekowski - zeig mal beispieldaten, um dein vorhaben zu verdeutlichen.

                Kommentar


                • #9
                  also über eine datenbankabfrage wird für jeden meiner artikel die gesamtsumme berechnet - die dabei herauskommenden arrays enthalten die artikelnummer und die summe
                  also z.B $a010[summe] und $a010[artikelnummer] wobei a10 die artikelnummer ist - jetzt will ich unter allen ausgelesenen arrays die 7 höchsten summen heraussuchen und sowohl die summe als auch die artikelnummer ausgeben lassen - wie könnte man das verwirklichen ?

                  Kommentar


                  • #10
                    PHP-Code:
                    <pre>
                    <?php
                    $a1 
                    = array("summe"=>21"id"=>1);
                    $a2 = array("summe"=>11"id"=>2);
                    $a3 = array("summe"=>27"id"=>3);
                    $a4 = array("summe"=>13"id"=>4);

                    $toSort = array($a1$a2$a3$a4);

                    array_multisort($toSortSORT_DESC);
                    print_r($toSort);
                    //enthält nun die arrays in der reihenfolge (nach 'id')
                    //3, 1, 4, 2
                    //bleibt noch die ausgabe der ersten n elemente,
                    //aber eine schleife kannst du auch selbst basteln

                    ?>
                    </pre>
                    Zuletzt geändert von penizillin; 21.01.2005, 17:21.

                    Kommentar


                    • #11
                      irgendwie verzweifle ich langsam an meinem script.....

                      PHP-Code:
                      $result mysql_query ("SELECT * FROM Artikeldaten");

                      if (
                      mysql_errno()) 
                         echo 
                      mysql_error(); 

                      //$artikel[Artnr] wird über diese abfrage definiert - für jeden artikel anders
                      while ($artikel mysql_fetch_array ($result))
                      {
                      $artikelvergesamt='WERT WIRD ÜBER DATENBANKABFRAGE KORREKT ZUGEORDNET';

                      $a = array("summe"=>$artikelvergesamtArtnr=>$artikel[Artnr]);

                      //WERT zurücksetzen
                      $artikelvergesamt=0;

                      ich will jedem einzelnen artikel ein array zuordnen - dann alle array sortieren und die 7 höchsten nach summe sortierten arrays ausgeben......wer kann mir helfen?

                      (die sort funktion fehlt noch)
                      EDIT:
                      byTobiaZ: Umbrüche sind schon schwer...
                      Zuletzt geändert von TobiaZ; 22.01.2005, 14:43.

                      Kommentar


                      • #12
                        ich habe dir gezeigt, wie man mit multisort vorankommt, nun musst du schon selbst was tun..

                        $artikelvergesamt - mir sagt der name dieser variable gar nichts.
                        $a wird in jedem zyklus überschrieben. fülle es mit $a[].

                        Kommentar


                        • #13
                          $artikelvergesamt ist die summe nach der sortiert werden soll.
                          gibt es eine möglichkeit bei jedem schleifendurchlauf eine neue variable zu bekommen die man dann sortiert ?
                          hab es zuerst mit $a.$x versucht wobei $x durchgezählt wird - dann bekomme ich wenn ich z.B $a10[summe] ausgeben lasse kein ergebnis)

                          Kommentar


                          • #14
                            mach ein mehrdimensionales array draus, wird einfacher zu sortieren sein.

                            Kommentar


                            • #15
                              d.h alles in ein array ?
                              wie unterscheide ich dann die verschiedenen summen bzw. artnr ?

                              Kommentar

                              Lädt...
                              X