PHP:比较2个csv文件中的1列,并将不匹配的行写入新文件

PHP:比较2个csv文件中的1列,并将不匹配的行写入新文件,php,magento-1.5,Php,Magento 1.5,我有一个产品csv文件,包含当前产品的更新和要导入的新产品。我想从更新文件中筛选出所有现有产品,因为我需要分别运行导入和更新。我有一个与所有当前产品的第二个csv 我想根据sku字段(这是两个文件中的第一个字段)对它们进行比较,并将两个文件中不存在的任何行写入新的csv,这样我就可以运行导入,而不用担心在当前产品中过度写入任何数据 我有点像一个PHP初学者,所以细节和代码示例非常受欢迎 我将在这里做一些假设。。。您必须调整解决方案以适合您 我假设csv文件中的第二个字段是这样的,当将文件与文件进

我有一个产品csv文件,包含当前产品的更新和要导入的新产品。我想从更新文件中筛选出所有现有产品,因为我需要分别运行导入和更新。我有一个与所有当前产品的第二个csv

我想根据sku字段(这是两个文件中的第一个字段)对它们进行比较,并将两个文件中不存在的任何行写入新的csv,这样我就可以运行导入,而不用担心在当前产品中过度写入任何数据


我有点像一个PHP初学者,所以细节和代码示例非常受欢迎

我将在这里做一些假设。。。您必须调整解决方案以适合您

我假设csv文件中的第二个字段是这样的,当将文件与文件进行比较时,将表明 产品已更新,类似于上次更新的时间戳

$prodFile = fopen("current-products.csv", "r");

// build a list of all of the sku's in prodFile
$prods = array();
while ($rec = fgetcsv($prodFile)){
    // I am assuming the second field is an updated timestamp
    $prods[$rec[0]] = $rec[1];
}

fclose($prodFile);

$newProdFile = fopen("new-products.csv", "r");
$addFile = fopen("productsToAdd.csv", "w");
$updateFile = fopen("productsToUpdate.csv", "w");

while ($rec = fgetcsv($newProdFile)){
    if (!array_key_exists($rec[0], $prods)){
        fputcsv($addFile, $rec);
    }
    if (array_key_exists($rec[0], $prods) &&
        $prods[$rec[0]] != $rec[1]){
        fputcsv($updateFile, $rec);
    }   
}
fclose($newProductFile);
fclose($addFile);
fclose($updateFile);     

我不知道你在这里要求什么。。。你已经试过什么了?你的错误是什么?谢谢,这看起来非常接近我所需要的。