2016-06-21 60 views
0

我有兩個CSV文件。他們有相同的列數,但可以有不同的行。我只需要將所有10個csv文件合併爲一個主csv文件,這樣總行數就會加起來。將2個CSV文件合併爲一個使用PHP

文件1:

John Andy 10 20 
Adam Sam 15 25 

文件2:

Sam Eric 34 40 
Ryan Rob 15 22 

最終csv文件:

John Andy 10 20 
Adam Sam 15 25 
Sam Eric 34 40 
Ryan Rob 15 22 
+0

爲什麼你不能單獨將它們全部讀入地圖或對象中,然後將它們全部寫入一個? – Jay

+1

這是你的答案。 http://stackoverflow.com/questions/5417734/combining-2-csv-files –

+0

'$ csv_final = file_get_contents('file1.csv')。 「\ n」。的file_get_contents( 'file2.csv');' – ceejayoz

回答

0

你可以用str_getcsv()http://php.net/manual/en/function.str-getcsv.php

01做到這一點 $file2 = str_getcsv('my_file2.csv');

再結合陣列:

$allfiles = $file1 + $file2 + $file3 [...] $allfiles = array_merge($file1, $file2 [...])

array_merge()實際上將重新對其進行索引,只是將它們結合起來($file1 + $file2)將簡單地添加他們。

這裏有array_merge()文檔:

http://php.net/array_merge

最後,一旦你有你的$allfiles變量,您可以通過fputcsv()輸出它:

http://php.net/manual/en/function.fputcsv.php

如果你的文件是巨大的,你可能會想要一個不同的解決方案。這將(不必要地)通過將每個文件放入一個變量(然後將它們放入一個變量)佔用大量內存。解決這個問題的方法是使用一個指針,在這裏你永遠不會加載超過一行的內存。

但是,如果你的文件很小,這可能工作得很好。

相關問題