2016-07-27 4 views
-2

Ich habe eine csv wie folgt aus:Gruppe durch eine Säule aus csv und Summe der Werte von einem anderen (PHP)

25/07/2016 3 
25/07/2016 4 
26/07/2016 4 
26/07/2016 1 

Und die Ausgabe, die ich erwarte, müssen es

25/07/2016 7 
26/07/2016 5 
so sein

Ich möchte dies nur mit PHP tun. Ich muss erwähnen, dass ich nicht mysql benutze und ich will nicht. Gibt es eine Lösung, das zu tun?

+2

Zeigen Sie uns, was Sie versucht haben. – user2100721

+0

Sie möchten aus einer Datei csv lesen und die Ausgabedatei csv erstellen? – Aminesrine

Antwort

0
"25/07/2016","3" 
"25/07/2016","4" 
"26/07/2016","4" 
"26/07/2016","1" 

Für z.B. Nehmen wir an, Sie haben eine CSV-Datei, die Daten wie oben enthält.

$arr = array(); 
$handle = fopen("example.csv", "r"); 
while(!feof($handle)) 
{ 
    $arrOfCSVLine = fgetcsv($handle); 
    $date = $arrOfCSVLine[0]; 
    $no = $arrOfCSVLine[1]; 

    if(!array_key_exists($data,$arr)) 
    { 
     $arr[$date] = $no; 
    } 
    else 
    { 
     $arr[$date] += $no; 
    } 

} 

echo '<pre>'; 
print_r($arr); 

Kontrolle dieser Code ..

+0

Das ist was ich brauche! Vielen Dank! – OPR

1

Versuchen Sie etwas wie das. Dies ist nur eine bearbeitete Version von this similar post.

$my_file = fopen('file.csv', 'rb'); 

$my_array = array(); 
while($row = fgetcsv($my_file)) { 
    $my_array[$row[0]] += $row[1]; 
} 
0
$finalOutput = array(); 
$file = fopen('myCSVFile.csv', 'r'); 
while (($line = fgetcsv($file)) !== FALSE) { 
    if(isset($finalOutput[$line[0]])){ 
    $finalOutput[$line[0]] = $line[1] + $finalOutput[$line[0]]; 
    } else { 
    $finalOutput[$line[0]] = $line[1]; 
    } 
} 
print_r($finalOutput); 
Verwandte Themen