Werte nach Datum aus Array filtern

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

  • Werte nach Datum aus Array filtern

    Hallo zusammen,

    ich brauche einen Denkanstoß. Ich habe ein Array in folgendem Format:
    PHP-Code:
    [22.07.1997] => -0.277888
    [23.07.1997] => 0.833664
    [24.07.1997] => 2.02461
    [25.07.1997] => 1.50854
    [28.07.1997] => 1.74672
    [29.07.1997] => 1.78642
    [30.07.1997] => 0.992457 // benötigter Wert
    [31.07.1997] => NULL // letzter Eintrag im Monat
    ...
    [
    18.09.2002] => -11.2807
    [19.09.2002] => -14.0646
    [20.09.2002] => -15.1701
    [23.09.2002] => -15.6613
    [24.09.2002] => -18.4863
    [25.09.2002] => -18.6091
    [26.09.2002] => -17.8312
    [27.09.2002] => -14.0646
    [30.09.2002] => -15.0063 // letzter Eintrag im Monat // benötigter Wert
    ...
    [
    23.02.2011] => 33.3219
    [24.02.2011] => 32.8655
    [25.02.2011] => 34.326 // benötigter Wert
    [28.02.2011] => NULL // letzter Eintrag im Monat
    [01.03.2011] => 34.5543
    [02.03.2011] => 33.824
    [03.03.2011] => 34.2348 
    Der Index ist ein Datum (kann auch ein Timestamp sein). Was ich brauche ist jeweils der letzte Wert jedes Monats. Sollte dieser Wert aber NULL sein, dann brauche ich den letzten Wert dieses Monats der nicht NULL ist.
    Das ganze sollte auch wöchentlich funktionieren.

    Eine erste Idee wäre das Array mittels einer Schleife (while?) und
    PHP-Code:
    date('t',$timestamp
    die Tage für jeden Monat hochzuzählen.

    Vielen Dank für eure Hilfe

  • #2
    Alle Einträge durchlaufen, und jeweils den letzten merken der nicht NULL ist.
    Gruppenwechsel auf Monat, dabei gemerkten Wert verarbeiten.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für den Tipp,

      ich hab es jetzt folgendermaßen gelöst und verifiziere mal die Datenausgabe.
      PHP-Code:
      // Zeiger auf das erste Element des Arrays setzen
      reset($result);
      // ersten Schlüssel aus Array ermitteln
      $firstKey key($result);
      // Monat aus erstem Element ermitteln
      $oldMonth date('m',strtotime($firstKey)); 

      foreach(
      $result as $key => $value){
          
          
      // aktueller Monat
          
      $currMonth date('m',strtotime($key));
          
          
      // Gruppenwechsel
          
      if($currMonth != $oldMonth){
              echo 
      'Letzter Tag des Monats: '.$lastOfMonth;
              echo 
      '<br />';
              echo 
      'Gruppenwechsel: '.$key.' => '.$value;
              echo 
      '<br />-----<br />';
              
      // $oldMonth neu setzen
              
      $oldMonth $currMonth;
              }
              
          
      // letzter Wert des jeweiligen Monats  
          
      if(!is_null($value)){
              
      $lastOfMonth $key.'=>'.$value;    
              }
              
          } 
      Verbesserungsvorschläge und Hinweis werden gern angenommen.

      Kommentar

      Lädt...
      X