sortierte liste

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

  • sortierte liste

    Hi leute,

    owohl ich mir fast nicht vorstellen daß das noch niemand gefragt hat, hab' ich doch nichts dazu im forum gefunden. Also bite vergebt mir, wenn ich doppelt frage.


    Ich habe eine Menge Integer-werte. Einige Werte kommen durchaus mehrfach vor.

    Ich muß für diese der Größe nach in aufsteigender Folge einige Berechnungen durchführen. Dabei darf allerdings kein Wert doppelt bearbeitet werden.

    Meine erste Idee war

    $time[wert] = 1;
    foreach ($time as $wert => value)

    Dabei filtere ich zwar alle doppelten Einträge heraus, nur leider mußte ich feststellen, daß ich die werte nicht sortiert bekomme Ich müßte also jetzt erst die Liste sortieren, bevor ich sie bearbeiten kann.

    allerdings ist der Faktor Zeit in diesm Fall die kritische Komponente. Von daher meine Frage:

    Wie kann ich das ganze Zeitlich effektiv gestalten?

    Danke Thomas

    PS.: Ich hatte mal eine Aufstellung gesehen, welche Funktion efizent, und welche cpu-lastig sind. Weiß jemand, wo ich sowas finden kann?
    Zuletzt geändert von diago; 25.11.2003, 20:19.

  • #2
    auch wenns aus deinem post nicht erkenntlich ist, nehme ich an, du arbeitest mit einem array.

    vielleicht gibst du dann im manual einfach mal array an.

    Kommentar


    • #3
      wo stehen denn deine werte?
      im key oder im value?
      Kissolino.com

      Kommentar


      • #4
        urspünglich stehen die werte in verschiedenen Feldern der datenbank

        wie ich zu einer solchen liste komme ist mir dabei fast egal, haupsache schnell )

        im Moment hab' ich das mit einem array versucht, aber wenn ein anderes Vorgehen sinnvoller ist, dann nehme ich natürlich das
        Zuletzt geändert von diago; 25.11.2003, 20:27.

        Kommentar


        • #5
          ich fass mich kurz:
          beispiel?
          Kissolino.com

          Kommentar


          • #6
            ähm, wenn die inner db stehen, warum ließt du nicht dort die entsprechenden daten aus?

            Kommentar


            • #7
              mein derzeitiger ansatz:

              function update()
              .....

              while ($row = mysql_fetch_array($res)) {
              $timesteps[$row[spstart]] =1;
              $timesteps[$row[spend]] = 1;
              }
              **
              foreach ($timesteps as $time => $value) {
              mache was mit $time;
              }

              wie gesagt, an Stelle ** müssen die werte sortiert abgearbeitet werden.
              Gibt es da einen sinnvolleren Weg, als hezugehen, und den array zu sortieren?

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                ähm, wenn die inner db stehen, warum ließt du nicht dort die entsprechenden daten aus?
                Weil jeder datensatz mehrere Werte beinhaltet, die sich durchaus überschneiden.

                Kommentar


                • #9
                  wie gesagt, mach das doch in der SQL abfrage!

                  Kommentar


                  • #10
                    siehe tobis post ... frags erstmal vernünftig per sql ab.
                    Kissolino.com

                    Kommentar


                    • #11
                      OffTopic:
                      @Tobiaz
                      kann es sein, dass wir beide gerade langeweile haben
                      Kissolino.com

                      Kommentar


                      • #12
                        nicht nur ihr

                        bin übrigens auch der meinung, dass das in sql gehen sollte, da gibt's so ein zauberwort, das mit DISTINC anfängt und direkt hinter SELECT stehen sollte
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Original geschrieben von Wurzel
                          siehe tobis post ... frags erstmal vernünftig per sql ab.
                          ok, dann eben die frage, wie ich das anstellen soll?

                          sagen wir

                          eintrag1 hat den start=3 und und end=10
                          eintrag2 hat den start=7 und und end=15
                          eintrag3 hat den start=0 und und end=20

                          wie soll ich das vernünftig abfragen?

                          Kommentar


                          • #14
                            @happy
                            da fehlt ein DISTINCT

                            @diago
                            wenn du dich nicht genauer räusperst, was du exakt machen willst,
                            wird das so nix.
                            Kissolino.com

                            Kommentar


                            • #15
                              dann eben nicht mit sql, sondern mit einer geeigneteten array-funktion von php

                              tipp: du willst das array nach schlüsseln sortieren
                              EDIT:
                              @wurzel
                              hab ja geschrieben "das mit DISTINC anfängt

                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X