php - 在 php 中比较 2 个 csv 文件和 1 列

标签 php mysql csv

我必须比较 2 个 csv 文件,每个文件有 1 列:

文件 1.csv:

第一列

9788800000000
9788800000001
9788800000002
9788800000003
...

文件 2.csv:

第一列

9788800000000
9788800000001
9788800000002
9788800000006
9788800000007
9788800000008
...

当在第二个 csv 文件 (file2.csv) 中找不到某些 EAN 代码时,我必须执行某些操作。例如,代码 9788800000003 仅存在于 file1.csv 中。

现在,当第一个文件中的 EAN 代码在第二个文件中找不到时,我必须更新数据库中的一个表并将其设置为“0”(在这种情况下,必须更改 ean 9788800000003 0 数量):

mysql_query("UPDATE $update_table SET quantity='0' WHERE ean13='$ean13'")

如何比较列的差异?

最佳答案

像这样:

$file1 = file('file1.csv');
$file2 = file('file2.csv');

$diff  = array_diff($file1, $file2);
$list  = implode(',', $diff);

$query = "UPDATE $update_table SET quantity='0' WHERE ean13 IN ($list)";
  1. 将文件读入行数组
  2. 获取差异数组
  3. 生成 EAN 差异列表
  4. 在 WHERE 子句中使用 IN

关于php - 在 php 中比较 2 个 csv 文件和 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190050/

相关文章:

php - 从 mysql 检索后图像不显示

php - 连接 3 个表并使用 WHERE

mysql - 我们如何使用 MySQL 和正则表达式查找域名

r - 如何使用 rscript 代码在 shiny 的 ui.R 中填充下拉菜单?

ruby-on-rails - 将 Rails CSV 解析为哈希

c# - OleDB 查询中的格式化日期

javascript - 在 Javascript 响应中设置 session 变量

php - 重置phpmyadmin用户名密码centos 6

mysql - 如何让我的 GTFS 查询运行得更快?

mysql - "Random"SQL 错误 - 常规 1030,来自存储引擎的 -1