Textdatei -> Array... gruppieren/sortieren?

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

  • Textdatei -> Array... gruppieren/sortieren?

    Hallo,

    besteht die Möglichkeit bei der nachfolgenden Textdatei ähnlichen Funktionen wie bei MySQL (ORDER BY/GROUP BY) durchzuführen?

    ID|User|Ort|Datum
    1;Alex;Berlin;12.05.2014
    2;Chris;München;13.12.2013
    3;Daniel;Stuttgart;12.01.2014
    4;Thomas;Hamburg;28.01.2014
    5;Michael;Dresden;17.12.2013
    ...

    Es soll z.B. nach Datum (Monate) gruppiert werden können:

    Dezember 2013
    - Chris
    - Michael
    Januar 2014
    - Daniel
    - Thomas
    Mai 2014
    - Alex

    Nach der zeitlichen Gruppierung sollte man z.B. auch nach User/Ort sortieren können.

    Ich würde also erstmal explode() verwenden, dann ev. das Array bei Datum aufsteigend sortieren.... und dann vielleicht irgendwie in ein anderes Array kopieren?

    Danke,
    Truncate

  • #2
    Zitat von Truncate Beitrag anzeigen
    Ich würde also erstmal explode() verwenden, dann ev. das Array bei Datum aufsteigend sortieren.... und dann vielleicht irgendwie in ein anderes Array kopieren?
    Der erste Schritt ist richtig, den zweiten kannst du dir sparen. Vorausgesetzt, dass du das Datum anders abspeicherst, also z.B. 2014-01-13.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von Kropff Beitrag anzeigen
      Vorausgesetzt, dass du das Datum anders abspeicherst
      … oder dir eine kleine eigene Vergleichsfunktion für das bestehende „Format“ schreibst, die du an usort übergeben kannst.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Zitat von Kropff Beitrag anzeigen
        Der erste Schritt ist richtig, den zweiten kannst du dir sparen. Vorausgesetzt, dass du das Datum anders abspeicherst, also z.B. 2014-01-13.

        Peter
        Hm, hab ich nen Denkfehler drin?

        Wenn ich obige Textdatei reinlade mittels $daten=file("textdatei.txt"); dann habe ich doch nur die Zeilen einzeln vorliegen?

        Ein Sortierung ASC nach Datum würde dann doch nur gehen, wenn das Datum im Format YYYY-MM-DD ist und an erster Stelle der Zeile?

        Kommentar


        • #5
          Ich denke Kropff bezog sich auf
          und dann vielleicht irgendwie in ein anderes Array kopieren?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Okay also wird der Aufbau der Datei so geändert (Datum zuerst, neues Format):

            Datum|ID|User|Ort
            2014-05-12;1;Alex;Berlin
            2013-12-13;2;Chris;München
            2014-01-12;3;Daniel;Stuttgart
            2014-01-28;4;Thomas;Hamburg
            2013-12-17;5;Michael;Dresden

            Mittels $daten=file("textdatei.txt");sort($daten); habe ich dann zwar ein (nach Datum) sortiertes Array, aber das hilft mir trotzdem nicht viel weiter.

            Es muss ja noch eine weitere Sortierung stattfinden, bei der DB würde ein Query etwa so aussehen:

            ... ORDER BY YEAR(datum) ASC, MONTH(datum) ASC, user ASC");

            Kommentar


            • #7
              Siehe meinen vorherigen Post – du willst usort verwenden.

              Pack den Kram erst in ein Array, gleich korrekt in Bestandteile zerlegt – und dann schreib dir eine kleine Vergleichsfunktion, die zwei Einträge bzgl. ihrer Sortierreihenfolge vergleicht.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X