使用PHP将2个CSV文件合并为一个

时间:2016-06-21 19:28:54

标签: php

我有两个CSV文件。它们具有相同数量的列但可以具有不同的行。我只需要将所有10个csv文件合并到一个主csv文件中,以便总行数加起来。

文件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

1 个答案:

答案 0 :(得分:0)

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

执行此操作

$file1 = str_getcsv('my_file1.csv'); $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

如果您的文件很庞大,您可能会想要一个不同的解决方案。这将(不必要地)通过将每个文件放入变量(然后将它们全部放入一个变量)来占用大量内存。解决方法就是使用一个指针,在这种情况下,你从来没有真正将一行代码加载到内存中。

但是,如果您的文件很小,这可能会很好。