Ankündigung

Einklappen
Keine Ankündigung bisher.

Array - Wochentag ermitteln und nach Datum gruppieren

Einklappen

Neue Werbung 2019

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

  • Array - Wochentag ermitteln und nach Datum gruppieren

    Hallo Community,

    ich versuche mir PHP beizubringen und hänge gerade gedanklich fest und würde mich freuen, wenn mir hier einer unter die Arme greifen könnte.

    Ich möchte den Wochentag anhand des Datums ermitteln und die Termine je nach Wochentag gruppieren und scheitere gerade irgendwie daran. Bisher
    habe ich mein Script soweit fertig, dass ich eine Text Datei einlese, die mit Tabs separiert ist und schreibe dies in ein Array. Soweit klappt es auch. Nun
    möchte ich gerne den Wochentag anhand des Datums ermitteln und die Zeiten je nach Wochentag Gruppieren.

    Beispiel wie es aussehen solte:

    Montag
    Gruppe A - 14:00 Uhr - Herr Behrens - Handball

    usw.

    Meine Text Datei sieht wie folgt aus:

    HTML-Code:
    22.01.2018    Gruppe A    14:00    Herr Behrens    Handball
    22.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
    22.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
    22.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
    Und mein Script so aus:

    PHP-Code:
    function myfile($file) {
        
    $str "Start ";
        if ((
    $handle fopen($file"r")) === FALSE) return;
        
    $line 0;
        while ((
    $cols fgetcsv($handle1000"\t")) !== FALSE) {
            if (
    $line >= 0) {
                
    $str .= "<span class="rowcolor">".$cols[0]." ".$cols[1]." ".$cols[2]." ".$cols[3]." ".$cols[4]."</span>";
            }
            
    $line++;
        }

        return 
    $str;
    }
    echo 
    myfile("plan.txt"); 
    Ich bedanke mich schon einmal für eure Hilfe und weiß es zu schätzen, das einer sich die Zeit nimmt.

    Grüsse

    Frederic

  • #2
    Also für das Datum wäre es folgendermaßen:
    PHP-Code:
    $date getdate(); 
    Wie genau du dann bestimmte werte des getDate(); bekommst findest du hier:
    http://php.net/manual/de/function.getdate.php

    Ich hoffe das hilft dir weiter

    Kommentar


    • #3
      Zitat von frederic19 Beitrag anzeigen

      Meine Text Datei sieht wie folgt aus:

      HTML-Code:
      22.01.2018 Gruppe A 14:00 Herr Behrens Handball
      22.01.2018 Gruppe A 15:00 Herr Behrens Fussball
      22.01.2018 Gruppe A 16:00 Herr Behrens Volleyball
      22.01.2018 Gruppe A 17:00 Herr Behrens Tennis
      Dort findet sich nur ein einziger Tag, bitte gib ein nachvollziehbare Beispiel an, sonst reden wir hier schnell aneinander vorbei.


      Schau mal in die Wissensammlung, vielleicht ist dort was dabei, was du nutzen kannst.

      Kommentar


      • #4
        Ich hatte das hier mal ausprobiert, das funktioniert als Standalone auch gut. Nur wie ich das mit der Gruppierung usw. zusammenbringe, da hänge ich gerade.

        PHP-Code:

        $tagermitteln
        = array("Sonntag""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag");

        $datumstrtotime("22.01.2018");

        echo 
        $tagermitteln[date("w"$datum)]; 

        Kommentar


        • #5
          Zitat von protestix Beitrag anzeigen
          Dort findet sich nur ein einziger Tag, bitte gib ein nachvollziehbare Beispiel an, sonst reden wir hier schnell aneinander vorbei.


          Schau mal in die Wissensammlung, vielleicht ist dort was dabei, was du nutzen kannst.
          Hier wäre die Liste für eine Woche

          HTML-Code:
          22.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          22.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          22.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          22.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          23.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          23.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          23.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          23.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          24.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          24.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          24.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          24.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          25.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          25.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          25.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          25.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          26.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          26.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          26.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          26.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          27.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          27.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          27.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          27.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          28.01.2018    Gruppe A    14:00    Herr Behrens    Handball
          28.01.2018    Gruppe A    15:00    Herr Behrens    Fussball
          28.01.2018    Gruppe A    16:00    Herr Behrens    Volleyball
          28.01.2018    Gruppe A    17:00    Herr Behrens    Tennis
          So wäre die Liste ungefähr für eine komplette Woche.

          Kommentar


          • #6
            Das machst du dann mit Gruppenwechsel, auch das findet sich in der Wissenssammlung.

            Kommentar


            • #7
              Zitat von protestix Beitrag anzeigen
              Das machst du dann mit Gruppenwechsel, auch das findet sich in der Wissenssammlung.
              Danke nochmal. Muss ich die while-Schlefe denn durch die foreach-Schleife ersetzen, oder kann ich diese in die while-Schleife ergänzen?

              Kommentar


              • #8
                Du kannst das auch mit der while Schleife machen. Schleife ist Schleife, du musst halt nur bei Änderung des ersten Feldes reagieren.

                Kommentar


                • #9
                  Zitat von protestix Beitrag anzeigen
                  Du kannst das auch mit der while Schleife machen. Schleife ist Schleife, du musst halt nur bei Änderung des ersten Feldes reagieren.
                  Ich kriegs mit meinem bsherigen Konstrukt nicht gerissen Das will nicht funktionieren. Ich war froh, das ich die Inhalte einlesen konnte und via key formatiert ausgeben konnte. Jetzt an der gruppierung scheitere ich.

                  Kommentar


                  • #10
                    PHP-Code:

                    <?php
                    $termine 
                    = array(
                    array(
                    "Datum" => "22.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "22.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "22.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "22.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    array(
                    "Datum" => "23.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "23.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "23.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "23.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    array(
                    "Datum" => "24.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "24.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "24.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "24.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    array(
                    "Datum" => "25.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "25.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "25.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "25.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    array(
                    "Datum" => "26.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "26.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "26.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "26.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    array(
                    "Datum" => "27.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "27.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "27.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "27.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    array(
                    "Datum" => "28.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"),
                    array(
                    "Datum" => "28.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"),
                    array(
                    "Datum" => "28.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "16:00""Tutor" => "Herr Behrens""Abteilung" => "Volleyball"),
                    array(
                    "Datum" => "28.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "17:00""Tutor" => "Herr Behrens""Abteilung" => "Tennis"),
                    );

                    $datum NULL;
                    for(
                    $i=0;$i<count($termine);$i++){
                     if(
                    $termine[$i]["Datum"] != $datum){
                      echo 
                    "<br>Tag: ".$termine[$i]["Datum"]."<br>";
                     }
                     echo 
                    " - ".$termine[$i]["Gruppe"]." - ".$termine[$i]["Uhrzeit"]." Uhr - Tutor: ".$termine[$i]["Tutor"]." - ".$termine[$i]["Abteilung"];
                     echo 
                    "<br>";
                     
                    $datum $termine[$i]["Datum"];
                    }
                    ?>

                    Kommentar


                    • #11
                      Zitat von frederic19 Beitrag anzeigen
                      Jetzt an der gruppierung scheitere ich.
                      Mal auf die Schnelle hingeschmiert - zum Spielen für dich

                      PHP-Code:
                      $aTermine = [
                          [
                      "Datum" => "22.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"],
                          [
                      "Datum" => "22.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"],
                          [
                      "Datum" => "23.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "14:00""Tutor" => "Herr Behrens""Abteilung" => "Handball"],
                          [
                      "Datum" => "23.01.2018""Gruppe" => "Gruppe A""Uhrzeit" => "15:00""Tutor" => "Herr Behrens""Abteilung" => "Fussball"],
                      ];

                      $letzterTermin null;

                      foreach (
                      $aTermine as $aTermin) {

                          
                      // der "Gruppenwechsel"
                          
                      if ($letzterTermin != $aTermin['Datum']) {
                              echo 
                      "\n\n" $aTermin['Datum'] . "\n------------\n";
                              
                      $letzterTermin $aTermin['Datum'];
                          }

                          
                      vprintf(
                              
                      "%s - %s - %s - %s - %s \n",
                              
                      $aTermin
                          
                      );
                      }

                      /*

                      22.01.2018
                      ------------
                      22.01.2018 - Gruppe A - 14:00 - Herr Behrens - Handball
                      22.01.2018 - Gruppe A - 15:00 - Herr Behrens - Fussball


                      23.01.2018
                      ------------
                      23.01.2018 - Gruppe A - 14:00 - Herr Behrens - Handball
                      23.01.2018 - Gruppe A - 15:00 - Herr Behrens - Fussball
                      */ 
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Die Lösung von Günni sieht bei mir so aus wenn ich das per c&p übernehme:
                        Code:
                        Tag: 22.01.2018
                        - Gruppe A - 14:00 Uhr - Tutor: Herr Behrens - Handball
                        - Gruppe A - 15:00 Uhr - Tutor: Herr Behrens - Fussball
                        - Gruppe A - 16:00 Uhr - Tutor: Herr Behrens - Volleyball
                        - Gruppe A - 17:00 Uhr - Tutor: Herr Behrens - Tennis
                        
                        Tag: 23.01.2018
                        - Gruppe A - 14:00 Uhr - Tutor: Herr Behrens - Handball
                        - Gruppe A - 15:00 Uhr - Tutor: Herr Behrens - Fussball
                        - Gruppe A - 16:00 Uhr - Tutor: Herr Behrens - Volleyball
                        - Gruppe A - 17:00 Uhr - Tutor: Herr Behrens - Tennis
                        Einziger Makel den ich sehe ist, das aus der CSV des TE die Daten dann wohl nicht mit Schlüsseln ala Datum + Gruppe daherkommen.

                        Kommentar


                        • #13
                          hausl Danke für die Hilfe. Du hast aber vor jedem Eintrag einen Key. Ich bekomme die Datei immer so, wie ich die hier abgebildet habe. Mein Trainer hat ein Programm, wo es immer so herausgelassen wird. Ist das so wie du es aufgebaut hast relevant? Ich habe mal eine Verständnisfrage. Ich sehe immer wieder, dass oft die foreach Schleife anstatt der while Schleife genommen wird. Hat das einen Grund? Egal wo ich mich über die Programmierung mit PHP informiert habe, überall stoße ich auf die foreach Schleife.Kann mir da einem Neuling mal erklären, warum das so ist? In einem Beitrag von protestix hat er geschrieben, das eine Schleife, egal welche eine Schleife ist. Oder habe ich da jetzt etwas falsch verstanden?

                          Kommentar


                          • #14
                            Schleifen brauchen eine Abbruchbedingung, Die Foreach-Schleife durchläuft einfach jedes Element eines Arrays und bricht dann automatisch ab, das ist einfach praktischer zu programmieren, weil man sich da um die Abbruchbedingung nicht kümmern muss.

                            Schau dir mal im Handbuch die Schleifen zu for, foreach, while und do-while an.

                            Das Beispiel von Hausl müsstest du noch anpassen, aber das bekommst du hin, oder?

                            Kommentar


                            • #15
                              Zitat von protestix Beitrag anzeigen
                              Schleifen brauchen eine Abbruchbedingung, Die Foreach-Schleife durchläuft einfach jedes Element eines Arrays und bricht dann automatisch ab, das ist einfach praktischer zu programmieren, weil man sich da um die Abbruchbedingung nicht kümmern muss.

                              Schau dir mal im Handbuch die Schleifen zu for, foreach, while und do-while an.

                              Das Beispiel von Hausl müsstest du noch anpassen, aber das bekommst du hin, oder?
                              Das war doch mal für einen Neuling eine geile Erklärung. Danke dafür! Ich schaue oft bei selfphp.de rein. Die haben da auch immer tolle Erklärungen, aber hier und da hängt es noch vom Verständnis her. Ich möchte ja nicht unverschämt rüberkommen, aber wenn du mir da auch noch mal behilflich bist und ich es noch einmal für mich sehe, um alles gut zu verstehen, wäre es natürlich toll. Ich kann es immer am Besten verstehen, wenn ich es einmal gesehen habe, wie so ein Ablauf bzw. Aufbau ist (mit Datei und Array).. Aber ich verstehe es natürlich auch, dass das Forum nicht dazu da ist, das andere einem den Code schreiben.

                              Also danke nochmal an alle!

                              Kommentar

                              Lädt...
                              X