Array Optimierung

  • Themenstarter Themenstarter scherlomatic
  • Beginndatum Beginndatum
Was für einen Sinn sollte das Zurücksetzten haben? Da gehn mir doch die Werte aus den ersten beiden Files (click und domain) flöten.

Den Sinn deines anderen Vorschlags kapiere ich grad nicht

Vielen Dank an dich
 
Hier mal die von mir angesprochene Variante, dürfte auf jeden Fall schneller gehen :)

PHP:
<?php

$what = array('click', 'domain', 'view');
$data=array();

foreach ($what as $name)
{
  $filename = 'log/statistic_' . $name . '_' . $date . '.log';
  if(is_readable($filename))
  {
    //auf fgetcsv wird verzichtet, gleich komplett alles
    //per file() einlesen
    $data=array_merge($data,file($filename));
  }
  else
  {
    printf("Konnte Datei nicht oeffnen: %s",$filename);
  }
}  
//Einlesen hier schon mal fertig
//Da nicht jeder Datensatz einzeln durchlaufen wird,
//sollte das weitaus schneller gehen



//Array-Werte zählen
$data=array_count_values($data);

//Ergebnisarray
$res=array();

//$data durchlaufen
foreach($data as $k=>$v)
{
  
  $arr=explode(';',trim($k));
  //Falls die erwarteten CSV-Daten
  if(count($arr)==4)
  {
    //Ergebnisarray erweitern
    $res[]=array_merge($arr,array($v));
  }
  
}

//test
print_r($res);
?>

Auf fgetcsv() wird dabei verzichtet, die Daten gleich per file() zu einem Array zusammengebastelt.
Ein key wird auch nicht extra erstellt...den liefert ja array_count_values()

Das Ergebnis dann noch fix in einem neuen Array (zzgl. der Anzahl der Vorkommen)zusammengefasst, feddsch :)
 
Zurück