array sortierung

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

  • array sortierung

    Hallo,

    ich habe ein array das ich gerne sortieren möchte.
    Der Inhalt sieht folgendermaßen aus:

    $array = (4:12.45, 5:11.15, 2:23.45)

    Die Zahl vor dem Doppelpunkt ist meine id des Artikels und nach dem
    Doppelpunkt der Preis, mein Problem ist jetzt das ich keine Idee habe und nichts passendes gefunden habe wie ich den array nach dem Preis sortieren kann.

    Bin für jeden Tip dankbar

    PS: Ich kann die reihenfolge von id und Preis leider nicht ändern.

  • #2
    du kannst das array anders aufbauen, die id als schlüssel, den preis als wert - dann kannst du auch wunderbar sortieren.

    ps: stand dein ps eben auch schon da? bastel dir eben ein temporäres array.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Wenn ich es so einfach umdrehen könnte wäre ja alles wunderbar.

      Wie meinst du das mit dem temporären array??

      Kommentar


      • #4
        Schau Dir doch mal explode im Handbuch an, dann kannst Du Deine Werte aufteilen ( und einen Array bauen mit key = vor : und wert = nach : und dann kannst Du ja wunderbar sortieren.

        Kommentar


        • #5
          sort kennt seit PHP4 einen zweiten Parameter, der das möglich macht:

          sort($array, SORT_NUMERIC);

          ansonsten mit

          function int_cmp($a, $b) { return (int)$a-(int)$b; }
          usort($array, 'int_cmp');
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            Ausschnitt meiner Schleife:
            PHP-Code:
            if($ergebnis[$i][motor_preis_b] !='') {

                      
            $daten_b explode("@"$ergebnis[$i][motor_preis_b]);
                      
            $anzahl_b count($daten_b);
                      if(
            $anzahl_b '1') {
                      for(
            $b 0$b $anzahl_b$b++) {

                      
            $satz_b explode(":"$daten_b[$b]);
                      
            $id_b $satz_b[0];
                      
            $preis_b $satz_b[1];
                      
            $Saetze[] = $preis_b.':'.$id_b;
                      }
                      
            $daten sort($SaetzeSORT_NUMERIC);

            // *** Hier hänge ich fest

                      
            $anzahl_b_neu count($daten);
                      for(
            $b_neu 0$b_neu $anzahl_b_neu$b_neu++) {

                      
            $satz_b_neu explode(":"$daten[$b_neu]);
                      
            $id_b_neu $satz_b_neu[1];
                      
            $preis_b_neu $satz_b_neu[0];
                      echo
            "$id_b_neu & $preis_b_neu";
                      
            $NeueSaetze[] = $id_b_neu.':'.$preis_b_neu;
                      }
                      
            $daten_neu implode("@"$NeueSaetze);
                      
            $sql_aendern="UPDATE $tabelle1 SET motor_preis_b='$daten_neu' WHERE id='$id'";
                      
            mysql_query($sql_aendern,$link);
                      }
                      unset(
            $daten,$daten_neu,$satz_b,$satz_b_neu,$anzahl_b,$anzahl_b_neu,$Saetze,$NeueSaetze);
                      } 
            Habe das array jetzt sortiert aber ich muss die Inhalte wieder für die Mysql Tabelle umdrehen und speichern, mir wird leider nur der : im Feld abgelegt.

            Kommentar


            • #7
              Könnte es das sein:
              $NeueSaetze[] = "$id_b_neu".':'."$preis_b_neu";

              Kommentar


              • #8
                PHP-Code:
                $daten sort($SaetzeSORT_NUMERIC);

                // *** Hier hänge ich fest

                          
                $anzahl_b_neu count($daten); 
                Ich habe leider keine Ahnung wie ich die Daten wieder Zählen kann um die weitere Schleife auszüführen das die Daten wieder ausgelesen werden können um sie wieder neu zusammen zuu setzten.

                Ich weiß das die Schleife nicht richtig ausgeführt wird weil immer nur ein doppelpunkt ausgegeben wird und nicht wie die anzahl der Daten.

                Kommentar


                • #9
                  Fehler gefunden

                  PHP-Code:
                  $daten sort($SaetzeSORT_NUMERIC);

                  // *** Hier hänge ich fest

                            
                  $anzahl_b_neu count($daten); 
                  musste in:

                  PHP-Code:
                  sort($SaetzeSORT_NUMERIC);

                  // *** Hier hänge ich fest

                            
                  $anzahl_b_neu count($Saetze); 
                  geändert werden.
                  Kleiner denkfehler hat wieder ne menge Arbeit gekostet.

                  Danke für eure Hilfe.

                  Kommentar


                  • #10
                    Re: Fehler gefunden

                    Original geschrieben von webINspirit

                    Kleiner denkfehler hat wieder ne menge Arbeit gekostet.
                    ... die Du durch genaues Lesen meines Beitrags und der verlinkten Handbuch-Stellen hättest sparen können.
                    mein Sport: mein Frühstück: meine Arbeit:

                    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                    Kommentar

                    Lädt...
                    X