2014-07-02 124 views
-1

我要合併3個CSV文件,每個文件是:如何使用PHP將3個CSV文件合併爲1個CSV文件?

File1.csv : 
2014-01-01,10 
2014-01-02,15 
2014-01-03,25 
. 
. 
. 

File2.csv : 
2014-01-01,20 
2014-01-02,26 
2014-01-03,46 
. 
. 
. 

File3.csv : 
2014-01-01,30 
2014-01-02,35 
2014-01-03,40 
. 
. 
. 

我要合併到1個CSV文件,調用merge.csv:

2014-01-01,10,20,30 
2014-01-02,15,26,35 
2014-01-03,25,46,40 

我嘗試了這些:

但它仍然無法正常工作。我該怎麼做?

+0

「但它仍然是行不通的」。什麼不工作? – user986959

+0

不執行:(我在Yii框架中使用make函數 – ihsansat

+2

你想要的不是合併文件,而是合併每個日期的值並將其寫入一個新文件。這有點複雜,因爲它涉及解析文件內容我沒有時間寫回答​​,但是這應該指向正確的方向 – jurgemaister

回答

1

我認爲這應該這樣做

$file1 = fopen('file1.csv', 'r'); 
$file2 = fopen('file2.csv', 'r'); 
... 
$merged = fopen('merged.csv', 'w'); 

$files = array($file1,$file2,...); 
$output=array(); 

foreach($files as $file){ 
    while (($line = fgets($file)) !== false) { 
     list($index,$value)= explode(',',trim($line)); 
     $output[$index][]=$value; 
    } 
} 
foreach($output as $key => $values){ 
    fwrite($merged, $key . ',' . implode(',',$values).PHP_EOL); 
} 
+0

waw ,,, thx @psk ,, :) – ihsansat

+0

如果它是有用的,你可以檢查正確的! :d – psk