2016-07-27 99 views
-2

我有這樣一個CSV:集團通過CSV一列,從另一個(PHP)的值相加

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