Ankündigung

Einklappen
Keine Ankündigung bisher.

Ein Fall für Sort ?

Einklappen

Neue Werbung 2019

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

  • Ein Fall für Sort ?

    Moin Moin,
    ich bitte um eure Hilfe bei einem Problem, wo ich quasi einen Knoten im Kopf habe

    Worum geht es:

    ich habe eine Liste mit Namen die so aussehen:
    apfel_obst_0304.txt
    apfel_obst_0305.txt
    apfel_obst_0105.txt
    erbse_gemuese_2204.txt
    erbse_gemuese_0505.txt
    erbse_gemuese_1304.txt usw.

    Das ganze liegt in einem Array $datensatz[$n].

    Ziel ist es jetzt ich will mittels PHP folgende Namen erhalten:
    apfel_obst_apfel_obst_0305.txt
    erbse_gemuese_0505.txt

    Zur Erklärung: Der Name setzt sicht aus 3 Komponenten zusammen:
    Frucht, Gruppe, Datum. Datebi gilt Datum als Tag/Monat.
    Erbse_Gemüse wäre z.B. am 3.05.2008 geliefert worden.
    Was vorher geliefert wurde innerhalb der gleichen Frucht/Gruppe interessiert nicht mehr und kann im Nirwana verschwinden.
    Wie sortiere ich und filtere die letzte Lieferung heraus.

    Wie ich die Liste aufzuschlüssele hab ich schon herausgefunden.
    list($frucht,$gruppe,$datum)=split($datensatz[$n]);

    diese kann ich auch sortieren lassen mit:
    array_multisort($datum, $gruppe $frucht,SORT_DESC );
    Aber dann hab ich das Array nur Sortiert, wie filtere ich nun gezielt die Datensätze heraus, nach denen ich suche.

    Ich hoffe ich habe mich verständlich ausgedrückt und Ihr könnte mir bei meinen Krausen Gedanken helfen. Vielen Dank vorab schon einmal.

    Gruss, Peter

  • #2
    Zitat von wetteronkel Beitrag anzeigen
    array_multisort($datum, $gruppe $frucht,SORT_DESC );
    Aber dann hab ich das Array nur Sortiert, wie filtere ich nun gezielt die

    du kannst bei array_multisort auch die einzelnen daten noch sortieren
    zB array_multisort($frucht,SORT_DESC, $gruppe, $datum,SORT_ASC)
    also zuerst wird nach $frucht sortiert und innerhalb der frucht nochmal nach datum

    das ganze gestaltest du dann so, dass das datum was du behalten willst, immer als erstes kommt und dann musst du noch prüfen ob du die frucht schon berücksichtigt hast

    PHP-Code:
    if (aktuelle frucht == vorhergehende frucht)
    continue;
    else 
    schreibe/speichere/whatelse aktuelle frucht

    Kommentar


    • #3
      Treffer versenkt...

      Vielen Dank für den Tritt in den Hintern
      Hat funktioniert!

      Grumpf... das was ich nicht wusste und meine Hilfe mir auch nicht so verdeutlichte war das:

      array_multisort($A,SORT_DESC, $B, $C,SORT_ASC);

      Ich wusste nicht, das diese Kombination auch möglich war.
      Tja und wieder was dazu gelernt,
      Danke und Gruss, Peter

      PS: ja ja, ich weiss, immer diese Anfänger

      Kommentar


      • #4
        Zitat von wetteronkel Beitrag anzeigen
        Vielen Dank für den Tritt in den Hintern
        habe ich doch gern gemacht

        Kommentar


        • #5
          Das Datum im Format Monat/Tag wäre wahrscheinlich für die Sortierung vorteilhafter.
          Aber eigentlich ist das ein klarer Fall für eine Datenbank, dann erübrigen sich all diese Probleme.
          Gruss
          L

          Kommentar


          • #6
            Zitat von lazydog Beitrag anzeigen
            Das Datum im Format Monat/Tag wäre wahrscheinlich für die Sortierung vorteilhafter.
            das kann man nochz ergänzen: sinnvoll wäre sogar noch das jahr voranzustellen, ansonsten gibt es bei der ersten lieferung im januar probleme.

            Kommentar

            Lädt...
            X