Php 从多个csv读取指定的行和行,并导出到一个csv文件

Php 从多个csv读取指定的行和行,并导出到一个csv文件,php,vba,csv,Php,Vba,Csv,我每周从四个外部来源收到四个csv文件。csv文件具有相同的设计,但包含不同的数据。我想有具体的行和行从所有四个文件收集到一个csv文件 下面是如何设计所有四个csv文件的示例。我想从所有四个csv文件中读取日期、名称以及第5行和第6行,然后将所有这些内容添加到一个csv文件中,并设置为第二个示例 这怎么可能呢?在MS Excel中作为脚本,或者服务器端使用PHP? 我一直在寻找PHP的解决方案。但我不确定是否可以使用PHP 内容(第1行、第2行、第3行等)中使用的分隔符是逗号(,)。带有日期和

我每周从四个外部来源收到四个csv文件。csv文件具有相同的设计,但包含不同的数据。我想有具体的行和行从所有四个文件收集到一个csv文件

下面是如何设计所有四个csv文件的示例。我想从所有四个csv文件中读取日期、名称以及第5行和第6行,然后将所有这些内容添加到一个csv文件中,并设置为第二个示例

这怎么可能呢?在MS Excel中作为脚本,或者服务器端使用PHP? 我一直在寻找PHP的解决方案。但我不确定是否可以使用PHP

内容(第1行、第2行、第3行等)中使用的分隔符是逗号(,)。带有日期和名称的顶部仅使用冒号(:)

第二个示例

Row5    Row6    Date    Name
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source1
ad4217  ad4218  24-01-2014  source2
ad4218  ad4218  24-01-2014  source2
ad4219  ad4218  24-01-2014  source2
ad4220  ad4218  24-01-2014  source2
ad4221  ad4218  24-01-2014  source2
ad4222  ad4218  24-01-2014  source2
ad4223  ad4218  24-01-2014  source2
ad4224  ad4218  24-01-2014  source2
ad4225  ad4218  24-01-2014  source2
ad4226  ad4218  24-01-2014  source2
ad4227  ad4218  24-01-2014  source2
ad4228  ad4218  24-01-2014  source2
ad4229  ad4218  24-01-2014  source2
ad4230  ad4218  24-01-2014  source2
ad4231  ad4218  24-01-2014  source2
ad4232  ad4218  24-01-2014  source2
ad4217  ad4218  24-01-2014  source3
ad4218  ad4219  24-01-2014  source3
ad4219  ad4220  24-01-2014  source3
ad4220  ad4221  24-01-2014  source3
ad4221  ad4222  24-01-2014  source3
ad4222  ad4223  24-01-2014  source3
ad4223  ad4224  24-01-2014  source3
ad4224  ad4225  24-01-2014  source3
ad4225  ad4226  24-01-2014  source3
ad4226  ad4227  24-01-2014  source3
ad4227  ad4228  24-01-2014  source3
ad4228  ad4229  24-01-2014  source3
ad4229  ad4230  24-01-2014  source3
ad4230  ad4231  24-01-2014  source3
ad4231  ad4232  24-01-2014  source3
ad4232  ad4233  24-01-2014  source3
ad4217  ad4218  24-01-2014  source4
ad4218  ad4219  24-01-2014  source4
ad4219  ad4220  24-01-2014  source4
ad4220  ad4221  24-01-2014  source4
ad4221  ad4222  24-01-2014  source4
ad4222  ad4223  24-01-2014  source4
ad4223  ad4224  24-01-2014  source4
ad4224  ad4225  24-01-2014  source4
ad4225  ad4226  24-01-2014  source4
ad4226  ad4227  24-01-2014  source4
ad4227  ad4228  24-01-2014  source4
ad4228  ad4229  24-01-2014  source4
ad4229  ad4230  24-01-2014  source4
ad4230  ad4231  24-01-2014  source4
ad4231  ad4232  24-01-2014  source4
ad4232  ad4233  24-01-2014  source4
我希望Stackoverflow的人知道如何做到这一点

溴 克里斯蒂安

结果就像你想要的:

row5 row6 Date Source
ad4215;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4215;ad4218;24/01/2014;source1
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad5555;test6i;24/01/2014;source3
ad5555;test6i;24/01/2014;source3
etc...

csv文件中的分隔符是逗号还是制表符?在您的示例中,它看起来像一个选项卡,但您可以从Excel复制并粘贴。很抱歉,缺少有关csv文件的详细信息。文件中正在使用分隔符:
code
日期:2014年1月24日名称:test.csv第1行、第2行、第3行、第4行、第5行、第6行、第7行、第8行、第9行ad4213、ad4214、AD42154216、ad4217、d4218、a219、ad4220、ad4221
code
这简直太棒了。我认为这样做的原因是前五行是文本或空格,标题(第1行、第2行等)从第六行开始。很抱歉,缺少有关csv文件的详细信息。文件中正在使用分隔符:文件顶部“日期:24-01-2014名称:test.csv”内容“第1行、第2行、第3行、第4行、第5行、第6行、第7行、第8行、第9行ad4213、ad4214、AD42154216、ad4217、d4218、a219、ad4220、ad4221”经过一些小的调整后,我使其能够读取这两个分隔符。非常感谢你的工作!克里斯蒂安酒店
$foo = array( "source1.csv", "source2.csv","source3.csv","source4.csv");  
    $cont=0;
    foreach ($foo as $value) {
        $fh = fopen($value, 'r');
        if(!$fh) die('File no good!');

        $i=0;$j=0;
        while (!feof($fh )){
            $campo = fgetcsv($fh,4096,";");

            if($i < 2)
                $dataandsource[$cont][$i]=$campo[1];
            elseif($campo[5] != '' && $campo[6]!= ''){
                $rowfive[$cont][$j]=$campo[4];
                $rowsix[$cont][$j]=$campo[5];
                $j++;
            }
            $i++;
        }
        unset($rowfive[$cont][0]); //first row is 'row5'
        unset($rowsix[$cont][0]);  //first row is 'row6'
    $cont++;
    }
    for($x=0;$x< count($foo);$x++)
    {
        for($y=0;$y <= count($rowfive[$x]);$y++)
        {
            if($x==0 && $y ==0)
                echo "row5  row6  Date    Source<br>";
            else{
                if($rowfive[$x][$y] != '' )
                echo $rowfive[$x][$y].";".$rowsix[$x][$y].";".$dataandsource[$x][0].";".$dataandsource[$x][1]."<br>";
            }

        }
    }
Date;24/01/2014;;;;;;;
Name;source1;;;;;;;



Row1;   Row2;   Row3;Row4;  Row5;Row6;Row7;Row8;Row9
ad4213;ad4214;ad4215;ad4216;ad4215;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4215;ad4218;test6;ad4220;ad4221
row5 row6 Date Source
ad4215;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4215;ad4218;24/01/2014;source1
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad5555;test6i;24/01/2014;source3
ad5555;test6i;24/01/2014;source3
etc...