Php 如何区分数据和CSV文件

Php 如何区分数据和CSV文件,php,csv,filecompare,Php,Csv,Filecompare,我有两个csv文件,都有相同的数据结构 ID - Join_date - Last_Login 我想根据以下示例比较并获得完全匹配的记录编号: 第一个文件有100条记录,其中20条不包括在第二个文件中 第二个文件有120条记录 我想要一个PHP脚本来比较这两个文件并构建两个单独的CSV文件 我想从第二个文件中删除第一个文件中未包含的所有额外记录。 并删除第一个文件中未包含在第二个文件中的所有记录 谢谢有一个GNU实用程序通信可以很容易地完成这项工作。您可以通过php执行,也可以直接执行。如果您

我有两个csv文件,都有相同的数据结构

ID - Join_date - Last_Login
我想根据以下示例比较并获得完全匹配的记录编号:

第一个文件有100条记录,其中20条不包括在第二个文件中

第二个文件有120条记录

我想要一个PHP脚本来比较这两个文件并构建两个单独的CSV文件

我想从第二个文件中删除第一个文件中未包含的所有额外记录。 并删除第一个文件中未包含在第二个文件中的所有记录


谢谢

有一个GNU实用程序通信可以很容易地完成这项工作。您可以通过php执行,也可以直接执行。如果您无法访问comm,最简单的方法是将这两个文件存储在一个数组中,可能是通过文件并使用array_intersect。

对于数量有限的CSV文件,您可以尝试此方法。。如果你有一个非常大的CSV,我建议你直接导入MySQL

function csvToArray($csvFile, $full = false) {
    $handle = fopen ( $csvFile, "r" );
    $array = array ();
    while ( ($data = fgetcsv ( $handle )) !== FALSE ) {
        $array [] = ($full === true) ? $data : $data[0]; // Full array or only ID 
    }

    return $array;
}


$file1 = "file1.csv" ;
$file2 = "file2.csv" ;

$fileData1 = csvToArray($file1);
$fileData2 = csvToArray($file2);


var_dump(array_diff($fileData1,$fileData2));
var_dump(array_intersect($fileData1,$fileData2));
@他们高兴地说:。谢谢