1

2つのcsvファイルがあり、どちらも同じデータ構造を持っています。

ID - Join_date - Last_Login

この例に基づいて、完全に一致するレコード番号を比較して取得したいと思います。

最初のファイルには100個のレコードがあり、そのうち20個は2番目のファイルに含まれていません。

2番目のファイルには120レコードがあります。

PHPのスクリプトで、これら2つのファイルを比較し、2つの別々のCSVファイルを作成したいと思います。

そして、最初のファイルに含まれていないすべての余分なレコードを2番目のファイルから削除したいと思います。
そして、2番目のファイルに含まれていないすべてのレコードを最初のファイルから削除します。

ありがとう

4

2 に答える 2

0

限られた数の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));
于 2012-04-04T13:27:59.597 に答える
0

commこれを非常に簡単に行うGNU ユーティリティがあります。execphp を介して行うことも、直接行うこともできます。にアクセスできない場合comm、最も簡単な方法は、両方のファイルを (おそらく 経由でfile()) 配列に格納し、 を使用することarray_intersect()です。

于 2012-04-04T13:26:23.717 に答える