我有两个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
答案 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()
的文档:
最后,一旦您拥有$allfiles
变量,就可以通过fputcsv()
输出:
http://php.net/manual/en/function.fputcsv.php
如果您的文件很庞大,您可能会想要一个不同的解决方案。这将(不必要地)通过将每个文件放入变量(然后将它们全部放入一个变量)来占用大量内存。解决方法就是使用一个指针,在这种情况下,你从来没有真正将一行代码加载到内存中。
但是,如果您的文件很小,这可能会很好。