Textdatei -> Array... gruppieren/sortieren?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Originally posted by Truncate View Post
    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

    Comment


    • #3
      Originally posted by Kropff View Post
      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.

      Comment


      • #4
        Originally posted by Kropff View Post
        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?

        Comment


        • #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.

          Comment


          • #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");

            Comment


            • #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.

              Comment

              Working...
              X