【问题标题】:merging multiple csv files using php使用php合并多个csv文件
【发布时间】:2013-02-11 12:51:21
【问题描述】:

我想创建一个命令行 php 脚本,它将文件夹中的多个 CSV 文件合并/合并为一个。

每个 CSV 文件都有 2 列,由逗号 (,) 分隔,但多行数各不相同。此外,每个 CSV 文件名都是唯一的,因此当我们合并 CSV 文件时,我希望 CSV 的文件名成为文件中每一行的第一列。

所以最终当它运行脚本时,它会将文件夹下的多个 CSV 文件合并为一个。从 2 列开始,输出文件将有 3 列,其中第一列是文件名。

【问题讨论】:

    标签: php csv merge command


    【解决方案1】:
    <?php
        $nn = 0;
        foreach (glob("*.csv") as $filename) {
    
            if (($handle = fopen($filename, "r")) !== FALSE) {
    
                while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
                    $c = count($data);
                    $csvarray[$nn][] = $filename;
                    for ($x=0;$x<$c;$x++)
                    {
                        $csvarray[$nn][] = $data[$x];
                    }
                    $nn++;
                }
    
                fclose($handle);
            }
    
        }
    
        $fp = fopen('../file.csv', 'w');//output file set here
    
        foreach ($csvarray as $fields) {
            fputcsv($fp, $fields);
        }
    
        fclose($fp);
    
    ?>
    

    我没有做任何测试,这里是你可以遵循的逻辑和代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-02
      • 2011-04-06
      • 2015-06-19
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2012-11-16
      相关资源
      最近更新 更多