我有一个 xml 文件,其中包含我想要插入到 mysql 数据库中的数据。现在我的数据库中已经有了条目,因此应该更新这些条目,应该添加不存在的条目,并且 - 现在出现问题 - 应该删除数据库中但不在 xml 中的条目。所以我尝试创建 2 个数组,其中一个包含 xml 数据的一些比较值,例如
$array_new["some1"] = "test";
$array_new["some2] = "test2";
另一个包含旧数据,如 $array_old["some1"] = "something"; $array_old["some2"] = "test2";
现在我想比较这两个数组,并将两个数组中不存在的所有值添加到一个新数组中。我尝试使用 array_diff 但这只会将两个数组中都不存在的一个值添加到新数组中。但我需要将所有具有相同键的值放在一个新数组中,以便我可以删除它们。
有人知道如何实现这一目标吗?谢谢!
最佳答案
假设您的表具有唯一索引(主键)并且您的 xml 数据具有相同的可用键数据,请按照以下步骤操作:
1) 从表中删除不在数组中的所有记录:
DELETE FROM tablename WHERE unique_field NOT IN (<comma seperated list or keys>)
2) 运行 INSERT ... ON DUPLICATE KEY UPDATE 类型查询:
INSERT INTO tablename VALUES (a, b, c) ON DUPLICATE KEY UPDATE field1 = a, ...
关于php - 如何从mysql数据库中删除不在数组中的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8606387/