2016-06-21 39 views
0

2つのCSVファイルがあります。それらは同じ数の列を持ちますが、異なる行を持つことができます。私は、合計10のcsvファイルを1つのマスターcsvファイルにまとめて、合計行数を加算するだけです。PHPを使用して2つのCSVファイルを1つに結合

ファイル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

なぜあなたはそれらをすべてマップやオブジェクトに別々に読み込んで1つに書き込むことができないのですか? – 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

あなたのファイルが巨大であれば、おそらく別の解決策が必要になるでしょう。これは、(不必要に)各ファイルを変数に配置して(それをすべて1つに配置する)、大量のメモリを占有します。これを解決するには、一度に1行以上のメモリをメモリにロードすることは決してないポインタを使用することです。

ただし、ファイルが小さい場合はうまくいく可能性があります。

関連する問題