2016-07-27 5 views
-2

は、私はこのようなCSV持っている別の(PHP)から値を合計:私は期待しcsvファイルから列によってグループと

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

出力は、それがこの

25/07/2016 7 
26/07/2016 5 
のようでなければなりません

私はこれをPHPを使用してのみ行いたいと思います。 私はmysqlを使用していないと言及しなければならないし、私はしたくない。 解決策はありますか?

+2

は、あなたがしようとしているものを私たちに表示します。 – user2100721

+0

ファイルcsvから読み込み、出力ファイルcsvを作成しますか? – Aminesrine

答えて

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

上記のようなデータを含むCSVファイルがあるとします。

$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); 

チェックこのコード..

+0

これは私が必要なものです!ありがとうございました! – OPR

1

このようなものを試してみてください。これはちょうど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); 
関連する問題