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