读取多个 CSV 文件并将它们写入新的 CSV 文件 php


Read multiple CSV file and write them to new CSV file php

我有多个具有同一列的.csv文件。我想将它们合并到一个新的.csv文件中。但是我得到空文件.csv

例如,我有三个文件:

CSV 1:

ID,name,age
1,Andy,18
2,Mary,19
3,Buddy,19
...

CSV 2:

ID,name,age
5,Andy,18
6,Cindy,20
...

CSV 3:

ID,name,age
9,Mody,18
10,Trudy,20
15,Windy,20
17,Somebody,22
...

有我想要的结果:

ID,name,age
1,Andy,18
2,Mary,19
3,Buddy,19
5,Andy,18
6,Cindy,20
9,Mody,18
10,Trudy,20
15,Windy,20
17,Somebody,22

尝试使用我的代码,但它给了我空文件:

$handle = fopen($file, "r");
$data = fgetcsv($handle, 0, ",");
fclose($handle);
$name = $_SERVER["DOCUMENT_ROOT"].'pathfile.csv';
$fopen = fopen($name, 'a');
fputcsv($fopen,$data,',','');
fclose($fopen);
<?php
function joinFiles(array $files, $result) {
if(!is_array($files)) {
    throw new Exception('`$files` must be an array');
}
$wH = fopen($result, "w+");
foreach($files as $file) {
    $fh = fopen($file, "r");
    while(!feof($fh)) {
        fwrite($wH, fgets($fh));
    }
    fclose($fh);
    unset($fh);
    fwrite($wH, "'n"); //usually last line doesn't have a newline
}
fclose($wH);
unset($wH);
}?>

用法:

<?php
joinFiles(array('join1.csv', 'join2.csv'), 'join3.csv');?>

合并后,您可以轻松排序