Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Alphabetisch sortieren

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Alphabetisch sortieren

    Hallo,
    kann mir bitte eine sagen, wie ich Zeichenketten, oder Zahlen alphabetisch, oder nach ihrer größe sortieren kann?

    Wenn ich zum Beispiel eine Datei mit folgen Informationen habe:

    user_a|16|user_c|45|user_h|41|user_k|21

    Die Zahlen sind das Alter.

    Dieser Infos werden dann durch das " | " getrennt und in ein Array zerlegt.

    Wie kann ich die User jetzt nach Alter, oder nach dem Alphabet sortieren?

    Danke schon mal allen, die Antworten.

    MfG

  • #2
    äh Textdatei?

    Dann musst du erst alles in ein Array einlesen und dann mit sort() sortieren.
    Aufstrebend, kompetent und [b]werbefrei[/b].
    :arrow: [b][url=http://www.developers-guide.net]www.developers-guide.net[/url][/b]

    Kommentar


    • #3
      die unterteilung in der datei ist schlecht.
      trenne es so.

      Code:
      name1;;alter1|name2;;alter2 ...
      oder irgendwie so.
      wenn du nach beiden sachen sortieren willst, dann brauchst du schon ein mehrdim. array.
      [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

      Kommentar


      • #4
        Zitat von Ben
        die unterteilung in der datei ist schlecht.
        das sehe ich ja jetzt erst...

        du solltest für jeden user eine neue Zeile anfangen!

        Dann kannst du Zeile für Zeile auslesen und aus der Zeile dann die Daten extrahieren.
        Aufstrebend, kompetent und [b]werbefrei[/b].
        :arrow: [b][url=http://www.developers-guide.net]www.developers-guide.net[/url][/b]

        Kommentar


        • #5
          Wieso ist die Unterteilung in der Datei schlecht?

          Sie werden später doch sowieso in ein Array eingelesen.

          MfG

          Kommentar


          • #6
            du kannst ja z.b. mit explode ein array erstellen.
            da gibst du dann aber ja einen separator ein. das wäre ja dann |

            toll. dann hast du am ende doppel so viele elemente wie gewollt.
            [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

            Kommentar


            • #7
              Ja, dann hätte ich ungefähr ein folgendes Array:

              Array(user_a,16,user_c,45,user_h,41,user_k,21)

              Meine Frage war halt die, wie ich es schaffe solch ein Array nach dem Alphabet zu sortieren, und zwar nur die User.

              MfG

              Kommentar


              • #8
                Versuch mal
                Code:
                for ($i = 1; $i < count($array); $i += 2)
                    unset($array[$i]);
                
                sort($array);

                Kommentar


                • #9
                  @tapferesschneiderlein:

                  So ungefähr habe ich mir das auch gedacht, aber wie weiß ich nach dem sorieren welches Alter zu den Usern gehört, oder welcher User zu welchem Alter?

                  MfG

                  Kommentar


                  • #10
                    Zitat von lex41
                    @tapferesschneiderlein:

                    So ungefähr habe ich mir das auch gedacht, aber wie weiß ich nach dem sorieren welches Alter zu den Usern gehört, oder welcher User zu welchem Alter?

                    MfG
                    antwort steht oben. die struktur der datei ist schlecht!
                    [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                    Kommentar


                    • #11
                      Na, nicht mehr. Du hast doch und zwar nur die User geschrieben!

                      Wenn Du das zugehörige Alter brauchst, solltest Du ein zweites Array bilden:

                      Code:
                      foreach ($array AS $key => $value) 
                          {
                          if ($key % 2)
                              $array['alter'][] = $value;
                          
                          else
                              $array['user'][] = $value;
                          }
                      
                      array_multisort($array['user'], $array['alter']);

                      Kommentar


                      • #12
                        @tapferesschneiderlein:

                        Danke

                        @Ben:

                        Wie würdest du die Datei strukturieren?

                        MfG

                        Kommentar


                        • #13
                          Zitat von lex41
                          @Ben:

                          Wie würdest du die Datei strukturieren?
                          hi.
                          ich bin in sachen textfiles ein anfänger, da ich eigentlich nur mit MySQL arbeite.

                          aber ich würde schon supertramp zustimmen.
                          Zitat von supertramp
                          du solltest für jeden user eine neue Zeile anfangen!

                          Dann kannst du Zeile für Zeile auslesen und aus der Zeile dann die Daten extrahieren.
                          aber wie gesagt. wenn du die möglichkeit hast .. nutze eine datenbank
                          [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                          Kommentar


                          • #14
                            @Ben:

                            Das würde ich auch machen, aber ich weiß nicht wie das mit den zeilen geht und wenn sie in das array eingelesen werden ist es ja dann schließlich auch egal, wie die Struktur der Datei war. Hauptsache sie werden alle richtig eingelesen, oder?

                            MfG

                            Kommentar


                            • #15
                              sorry.
                              ich kann hier nicht mehr mit bestimmtheit mitreden .. ich habe noch nie intensiv mit textfiles gearbeitet.
                              [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                              Kommentar

                              Lädt...
                              X