Einzelnen Beitrag anzeigen
Ungelesen 19.03.12, 20:05   #19
Epeos
Ist öfter hier
 
Benutzerbild von Epeos
 
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
Epeos ist noch neu hier! | 0 Respekt Punkte
Standard

Habs ein bisschen umgebaut:

PHP-Code:
<?php
// CSV-Datei öffnen
$fh fopen('aht.csv''r');
$lines = array();
// Zeilenweise einlesen (fgetcsv für gleichzeitiges Lesen und "Splitten")
while(($line fgetcsv($fh0';')) !== false) {
  
$lines[] = $line;
}
// Datei schließen
fclose($fh);

//festlegen, welches die Start- und Ende-Spalten sind, dabei hat die erste Spalte den Index 0
$startspalte 3;
$endespalte 7;

/*
 * 2-Dimensionales Array ablaufen und alle nichtleeren Zeiten in neues Array kopieren
 * ACHTUNG: i-Schleife beginnt mit 1 um die Kopfzeile der CSV-Datei zu überspringen
 */
$tinseconds = array();
$count 0;
for(
$i=1$i<count($lines); $i++) {
  for(
$j=$startspalte$j<$endespalte$j++) {
    if (!empty(
$lines[$i][$j])) {

        
// Wert nach Minuten und Sekunden auftrennen und als Sekundenwert ablegen
        
$time preg_split('/:/'$lines[$i][$j]);
        
$seconds $time[0] * 60 $time[1];
        
$tinseconds[$j][] = $seconds;
    }
  }
}

/* $tinseconds sieht in etwa so aus:
 * $tinseconds[3] alle Werte aus Spalte 3
 * $tinseconds[4] alle Werte aus Spalte 4; die Anzahl muss nicht mit $tinseconds[3] übereinstimmen
 * ...
 */

/*
/*
 * Durchschnitt der einzelnen Spalten bilden
 */
$averages = array();
for(
$i=$startspalte$i<$endespalte$i++) {
  
// Über die einzelnen Spalten Summe bilden und durch Anzahl der Einträge teilen
  // --> ergibt den Durchschnittswert in Sekunden
  
if (count($tinseconds[$i])>0) {
    
$seconds array_sum($tinseconds[$i]) / count($tinseconds[$i]);
    
// Volle Minuten bestimmen, eventuell mit führender 0
    
$avg_minutes str_pad(floor($seconds 60), 2'0'STR_PAD_LEFT);
    
$avg_seconds str_pad(($seconds 60), 2'0'STR_PAD_LEFT);
    
$averages[] = $avg_minutes ':' $avg_seconds
  }
}  

// Testweise ausgeben lassen :)
print_r($averages);
Bei T1 komm ich auf Deine Zeit. Rest hab ich nicht nachgerechnet. Das funktioniert jetzt auch, wenn einzelne Werte in T1, T2, T3 oder TGes nicht gesetzt sind.
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
Epeos ist offline   Mit Zitat antworten