我有一个包含文件的目录和一个应该是相同文件的数据库表。我希望能够将数据库表与目录同步。最有效的方法是什么?或者我是否真的只能以粗野的方式做到这一点?
这是我的方法:
1.检索目录中的所有文件为数组
2.将数据库表中的所有文件名检索为数组
3.遍历目录数组中的文件值并使用数据库表数组上的in_array()来验证文件名是否在该数组中,如果没有,则开始构建数组以插入缺少的文件名。运行db query将每个丢失的文件行添加到数据库表
4.遍历目录数组并在目录数组上使用in_array(),目录数组中找不到的任何东西都将从表中删除。
还有更好的方法吗?或者更好的东西在php中比in_array()?
答案 0 :(得分:1)
您可以使用array_diff()
来有效地确定两个阵列之间的差异。以一种方式运行它以获取已添加的内容,并以另一种方式(交换参数)运行已删除的内容。
(但请注意,您可能希望对阵列的副本进行操作,而不是原件。)