我有兩個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
我有兩個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
你可以用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()
文檔:
最後,一旦你有你的$allfiles
變量,您可以通過fputcsv()
輸出它:
http://php.net/manual/en/function.fputcsv.php
如果你的文件是巨大的,你可能會想要一個不同的解決方案。這將(不必要地)通過將每個文件放入一個變量(然後將它們放入一個變量)佔用大量內存。解決這個問題的方法是使用一個指針,在這裏你永遠不會加載超過一行的內存。
但是,如果你的文件很小,這可能工作得很好。
爲什麼你不能單獨將它們全部讀入地圖或對象中,然後將它們全部寫入一個? – Jay
這是你的答案。 http://stackoverflow.com/questions/5417734/combining-2-csv-files –
'$ csv_final = file_get_contents('file1.csv')。 「\ n」。的file_get_contents( 'file2.csv');' – ceejayoz