myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 18.03.12, 12:03   #1
Wasabi72
Anfänger
 
Registriert seit: May 2009
Beiträge: 18
Bedankt: 0
Wasabi72 ist noch neu hier! | 0 Respekt Punkte
Standard

Igendwie rechnet das nicht wirklich korrekt.
Hier mal eine Test csv mit allen Spalten:
Code:
pack;set;runs;T1;T2;T3;Tges;Datum;Zeit;out;other;zero;percent
7480;31260;;;;;;17.03.2012;16:30;08:22;38;;68%
77754;9702;27;06:46;02:46;01:03;10:36;17.03.2012;16:30;08:22;38;;68%
2356;41294;;;;;;17.03.2012;16:30;08:22;38;;68%
45564;91278;68;04:30;00:52;00:19;05:40;17.03.2012;16:30;08:22;38;;68%
23566;91249;37;05:48;03:05;00:48;09:42;17.03.2012;16:30;08:22;38;;68%
88932;41625;47;03:31;02:59;00:23;06:53;17.03.2012;16:30;08:22;38;;68%
93136;91218;45;03:50;03:07;00:30;07:27;17.03.2012;16:30;08:22;38;;68%
65337;84681;;;;;;17.03.2012;16:30;08:22;38;;68%
22345;41215;28;06:14;03:27;01:23;11:03;17.03.2012;16:30;08:22;38;;68%
46485;84601;35;03:57;04:59;00:50;09:46;17.03.2012;16:30;08:22;38;;68%
81614;16179;;;;;;17.03.2012;16:30;08:22;38;;68%
41603;81271;42;05:12;03:48;00:47;09:47;17.03.2012;16:30;08:22;38;;68%
46407;84612;;;;;;17.03.2012;16:30;08:22;38;;68%
46408;84621;;;;;;17.03.2012;16:30;08:22;38;;68%
5734;6773;;;;;;17.03.2012;16:30;08:22;38;;68%
46477;84671;;;;;;17.03.2012;16:30;08:22;38;;68%
3435;7778;32;06:32;03:38;01:35;11:45;17.03.2012;16:30;10:24;38;;68%
4357;44567;27;06:54;03:39;00:47;11:20;17.03.2012;16:30;10:24;38;;68%
81296;63113;;;;;;17.03.2012;16:30;10:24;38;;68%
16129;26611;31;07:10;01:20;00:33;09:03;17.03.2012;16:30;10:52;38;;68%
Startspalte ist 3, Endspalte ist 7, und hier das berechnete Ergebnis:
Array ( [0] => 00:00 [1] => 00:00 [2] => 00:00 [3] => 03:01 )

Hier das komplette S*****:
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);

/*
 * 2-Dimensionales Array ablaufen und Zeiten aufsummieren
 * ACHTUNG: i-Schleife beginnt mit 1 um die Kopfzeile der CSV-Datei zu überspringen
 */
$sums = array();
$count 0;
for(
$i=1$i<count($lines); $i++) {
  if(!empty(
$lines[$i][0])) {
    
$count++;    
  
//festlegen, welches die Start- und Ende-Spalten sind, dabei hat die erste Spalte den Index 0
  //Hier im Beispiel werden die 2., 3. und 4. Spalte in der Auswertung berücksichtigt
  
$startspalte 3;
  
$endespalte 7;
  for(
$j=$startspalte$j<$endespalte$j++) {
    
// Falls es der erste Durchlauf ist, wird die Summe mit 0 vorbelegt
    
if(!isset($sums[$j]))
      
$sums[$j] = 0;
    
    
// Wert nach Minuten und Sekunden auftrennen und als Sekundenwert ablegen
    
$time preg_split('/:/'$lines[$i][$j]);
    
$seconds $time[0] * 60 $time[1];
    
$sums[$j] += $seconds;
  }
 }   
}
/*
/*
 * Durchschnitt der einzelnen Spalten bilden
 */
$averages = array();
for(
$i=0$i<count($sums); $i++) {
  
// Summe aus dem Array holen und durch Anzahl der Zeilen (in $count ermittelt) teilen
  // --> ergibt den Durchschnittswert in Sekunden
  
$seconds $sums[$i] / $count;
  
// 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);
Hab ich was übersehen ??

.
Wasabi72 ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.


Sitemap

().