myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

Zeit aus csv-Datei

Willkommen

myGully

Links

Forum

 
 
 
Themen-Optionen Ansicht
Prev Vorheriger Beitrag   Nächster Beitrag Next
Ungelesen 18.03.12, 12:03   #10
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
 


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 15:36 Uhr.


Sitemap

().