比较阵列中的人

时间:2016-04-20 22:16:20

标签: php arrays compare

我试图解决的问题是这个。

我有一群人,有些人在这个数组中重复,但他们的细节并不总是完全一样,他们的名字有些细微差别。所以我要做的就是循环遍历所有名称并比较名称的接近程度,然后如果这是匹配他们的年龄和家乡。

稍后我希望创建一个新数组并说“此人也出现了以下ID”...

到目前为止我所做的是一个冒泡排序,如果我让它运行足够长时间,我确信我可以完成任务。我只是想看看有人有更好的解决方案吗?

optimizer_including = cudnn

1 个答案:

答案 0 :(得分:1)

仅与具有相似年龄和家乡的人进行比较可能更有效率,然后对姓名进行比较检查。首先与每个人进行比较似乎都会非常缓慢。

对于您的SQL,这样的事情,因为您正在遍历每个用户:

SELECT name, age, hometown
FROM users
WHERE age BETWEEN value1 AND value2
   AND hometown LIKE value3

然后进行比较检查。确保使用迭代器 - 如果你在成千上万的人中进行迭代,这将使你的内存管理保持不变。

这样,对于每个用户,您可能只是与少数可能的匹配(而不是可能的数千)进行比较。