Variablen nach Größe sortieren

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

  • Variablen nach Größe sortieren

    Hallo,

    vielleicht hat wer eine Idee wie ich das Problem lösen kann:

    $a = 56;
    $b = 45;
    $c = 96;
    $d = 12;
    $e = 33;

    // Rechnung

    am Ende sollen die Variablen je nach Größe ausgegeben werden, in meinem Beispiel wäre es:

    $c = 96;
    $a = 56;
    $b = 45;
    $e = 33;
    $d = 12;

    Mir fällt momentan nur eine sehr, sehr lange if / else variante ein um das Problem zu lösen. Ich schätze mal man könnte die Sachen doch bestimmt auch irgendwie in einem Array speichern und das Array mit einer PHP-Funktion etc. sortieren? Wobei sich dabei die Namen (a,b,c,d,e) nicht ändern dürfen weil ich wissen muss welche Zahl zu welcher Variable gehört.

    Kann mir vielleicht wer bei dieser Anfängerfrage helfen? Würde mich sehr freuen.

  • #2
    Hallo,

    du kannst die Namen und die Werte assoziativ in ein Array speichern, eine der vielen eingebauten Sortierfunktionen verwenden und dann das Array per foreach ausgeben.

    Darf ich fragen, wofür das gut sein soll? Willst du PHP-Code dynamisch erzeugen?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Ich wollte meine Seite einfach etwas "lebendiger" wirken lassen. Momentan sieht meine Seite halt so aus:

      Neuer Beitrag: 19.01.2011 17:26
      Neuer Beitrag: 05.01.2011 12:26
      Neuer Beitrag: 30.12.2010 19:26

      Jetzt habe ich mir halt überlegt wenn ich das Datum weg lasse und nur die Uhrzeit anzeige sieht es etwas "lebendiger".

      Neuer Beitrag: 17:26
      Neuer Beitrag: 12:26
      Neuer Beitrag: 19:26

      Jetzt sieht es aber bloed aus mit der Uhrzeit 19:26 am Ende :P

      Also habe ich jetzt den Timestamp aus der Datenbank geholt, es in eine Uhrzeit umgewandelt und nur die Minuten und Sekunden behalten. Jetzt muss ich halt nur noch herausfinden wie ich es sortiere

      Kommentar


      • #4
        Tut mir leid, dass ich nochmal nachfrage aber sagen wir ich habe es jetzt in einem Array gespeichert und in dem Array sind mehrere Daten:

        $anzeige[0]['datum']
        $anzeige[0]['titel']
        $anzeige[0]['text']

        $anzeige[1]['datum']
        $anzeige[1]['titel']
        $anzeige[1]['text']

        Irgendwie finde ich im Internet gerade nur Sachen wie:

        ksort($anzeige);

        Aber wie kann ich es konkret nach der Spalte ['datum'] sortieren? Ich werde aus dem Php.net Manual gerade nicht schlau.

        Kommentar


        • #5
          Warum lasst du nicht einfach die Datenbank sortieren?

          Kommentar


          • #6
            Weil ich da einen Timestamp gespeichert habe der auch das Datum in die Sortierung mit einbeziehen würde.

            Kommentar


            • #7
              TIME()

              Kommentar


              • #8
                Dann Sortiere ich aber hunderte Beiträge nach der Uhrzeit, ich möchte aber nur die neusten fünf so anzeigen oder kann ich so gleichzeitig die neusten NACH DATUM rausfilter UND die neusten fünf dann nach der Uhrzeit sortieren?

                Ist denn das Sortieren eines Arrays wie ich oben gefragt hatte nicht möglich?

                Kommentar


                • #9
                  Zitat von webtaste6659 Beitrag anzeigen
                  Dann Sortiere ich aber hunderte Beiträge nach der Uhrzeit, ich möchte aber nur die neusten fünf so anzeigen oder kann ich so gleichzeitig die neusten NACH DATUM rausfilter UND die neusten fünf dann nach der Uhrzeit sortieren?
                  Du hast doch gesagt, dass du nicht nach Datum sortieren möchtest? Jetzt doch?

                  Kommentar


                  • #10
                    Ich möchte die neusten fünf NICHT nach Datum sortieren sondern nach Uhrzeit - aber, dafür muss ich ja erstmal das Datum benutzen um die neusten fünf zu finden.

                    Sorry, hatte hab das wohl falsch geschrieben bzw. hatte bisher ja keine Rolle gespielt weil kein MySQL mit in der Fragestellung war.

                    Ich verstehe trotzdem nicht warum Du jetzt plötzlich auf MySQL wechselst - Ist denn das Array sortieren so nicht möglich?

                    $anzeige[0]['datum']
                    $anzeige[0]['titel']
                    $anzeige[0]['text']

                    $anzeige[1]['datum']
                    $anzeige[1]['titel']
                    $anzeige[1]['text']

                    Irgendwie finde ich im Internet gerade nur Sachen wie:

                    ksort($anzeige);

                    Aber wie kann ich es konkret nach der Spalte ['datum'] sortieren? Ich werde aus dem Php.net Manual gerade nicht schlau.

                    Kommentar


                    • #11
                      Zitat von webtaste6659 Beitrag anzeigen
                      Ich möchte die neusten fünf nicht nach Datum sortieren aber dafür muss ich ja erstmal das Datum benutzen um die neusten fünf zu finden.
                      Der Satz ist für mich von vorne bis hinten unlogisch. Du willst nicht nach Darum sortieren aber doch nach Datum sortieren, lese ich da raus.

                      Zitat von webtaste6659 Beitrag anzeigen
                      Ich verstehe trotzdem nicht warum Du jetzt plötzlich auf MySQL wechselst - Ist denn das Array sortieren so nicht möglich?
                      Sicher ist es möglich, aber in den meisten Fällen unpraktikabel. Wozu hat man eine Datenbank, deren Hauptaufgabe es ist Daten zu filtern und zu sortieren, wenn man dann erst alles selber nachprogrammiert?

                      Kommentar


                      • #12
                        Ich möchte die fünf neusten aus der Datenbank holen:

                        A - Neuer Beitrag: 19.01.2011 17:26
                        B - Neuer Beitrag: 05.01.2011 12:26
                        C - Neuer Beitrag: 30.12.2010 19:26

                        Und diese dann nach der Uhrzeit sortieren:

                        C - Neuer Beitrag: 30.12.2010 19:26
                        A - Neuer Beitrag: 19.01.2011 17:26
                        B - Neuer Beitrag: 05.01.2011 12:26

                        So, dass man nicht sieht, dass nur alle paar Wochen jemand aktiv ist sondern es so aussieht als ob heute schon x Leute aktiv Waren:

                        C - Neuer Beitrag: 19:26
                        A - Neuer Beitrag: 17:26
                        B - Neuer Beitrag: 12:26

                        Nur weil ich bei der Wahrnehmung wie aktiv die Seite eigentlich ist etwas schummeln möchte muss dies ja nicht bedeuten, dass ich auch Beiträge von 1999 direkt wieder nach oben holen muss / möhcte.

                        Ich verstehe auch nicht wieso das hier in einer solchen "Diskussion" Ende muss bzw. was so schwer daran ist mir eine Antwort auf meine Frage zu geben - Ich bin mir durchaus im klaren, dass es eine Anfänger-Frage ist - Würde mich aber trotzdem über eine Antwort freuen ...

                        Also, hier der dritte Versuch:

                        $anzeige[0]['datum']
                        $anzeige[0]['titel']
                        $anzeige[0]['text']

                        $anzeige[1]['datum']
                        $anzeige[1]['titel']
                        $anzeige[1]['text']

                        Irgendwie finde ich im Internet gerade nur Sachen wie:

                        ksort($anzeige);

                        Aber wie kann ich es konkret nach der Spalte ['datum'] sortieren? Ich werde aus dem Php.net Manual gerade nicht schlau.

                        Kommentar


                        • #13
                          Zitat von webtaste6659 Beitrag anzeigen
                          Ich möchte die fünf neusten aus der Datenbank holen:

                          A - Neuer Beitrag: 19.01.2011 17:26
                          B - Neuer Beitrag: 05.01.2011 12:26
                          C - Neuer Beitrag: 30.12.2010 19:26

                          Und diese dann nach der Uhrzeit sortieren:

                          C - Neuer Beitrag: 30.12.2010 19:26
                          A - Neuer Beitrag: 19.01.2011 17:26
                          B - Neuer Beitrag: 05.01.2011 12:26

                          So, dass man nicht sieht, dass nur alle paar Wochen jemand aktiv ist sondern es so aussieht als ob heute schon x Leute aktiv Waren:

                          C - Neuer Beitrag: 19:26
                          A - Neuer Beitrag: 17:26
                          B - Neuer Beitrag: 12:26

                          Nur weil ich bei der Wahrnehmung wie aktiv die Seite eigentlich ist etwas schummeln möchte muss dies ja nicht bedeuten, dass ich auch Beiträge von 1999 direkt wieder nach oben holen muss / möhcte.

                          Ich verstehe auch nicht wieso das hier in einer solchen "Diskussion" Ende muss bzw. was so schwer daran ist mir eine Antwort auf meine Frage zu geben - Ich bin mir durchaus im klaren, dass es eine Anfänger-Frage ist - Würde mich aber trotzdem über eine Antwort freuen ...
                          Ohne es zu verstehen, kann ich dir keine sinnvolle Hilfe geben. Und ich versteh's noch immer nicht. Woran definierst du die "neuesten" Einträge, wenn nicht nach Datum und Uhrzeit?

                          Kommentar


                          • #14
                            Ist es wirklich so wichtig woran ich was definiere bei einer Frage:

                            $anzeige[0]['datum'] = WERT 10:15
                            $anzeige[0]['titel']
                            $anzeige[0]['text']

                            $anzeige[1]['datum'] = WERT 20:15
                            $anzeige[1]['titel']
                            $anzeige[1]['text']

                            Wie ich dieses Array sortieren kann nach dem Datum?

                            Kommentar


                            • #15
                              Kannst du jetzt endlich mal eine verständliche Antwort auf meine Frage geben?

                              Und ja, es ist wichtig.

                              Zeig doch mal deine bestehende Datenbankabfrage.

                              Kommentar

                              Lädt...
                              X