在php中有没有更有效的方法来查找数组中的元素?

在php中有没有更有效的方法来查找数组中的元素?,php,arrays,Php,Arrays,我必须每天检索一个国际数据库的数千条以上的记录,但我必须将其中的每一条与我的数据库进行比较,以避免在我的数据库中注册重复的记录。实际上我正在使用这个函数 in_array($element,$myarray) 因此,我正在寻找一种更有效的方法来验证数组中是否已经存在元素 我希望你能帮助我。我相信这是处理这件事最快的方法。唯一的其他两种方法是使用for或foreach,或使用strstr序列化数组。但这些选择听起来效率不高。有一篇关于解析时间的文章很好我相信这是处理这个问题最快的方法。唯一的其他

我必须每天检索一个国际数据库的数千条以上的记录,但我必须将其中的每一条与我的数据库进行比较,以避免在我的数据库中注册重复的记录。实际上我正在使用这个函数

in_array($element,$myarray)
因此,我正在寻找一种更有效的方法来验证数组中是否已经存在元素


我希望你能帮助我。

我相信这是处理这件事最快的方法。唯一的其他两种方法是使用
for
foreach
,或
使用
strstr
序列化
数组。但这些选择听起来效率不高。有一篇关于解析时间的文章很好

我相信这是处理这个问题最快的方法。唯一的其他两种方法是使用
for
foreach
,或
使用
strstr
序列化
数组。但这些选择听起来效率不高。有一篇关于解析时间的文章很好

你可以创建两个数组并使用
array\u diff

array_diff
将返回一个数组,其中包含不同的值


有关详细信息,请参见您可以创建两个数组并使用
数组_diff

array_diff
将返回一个数组,其中包含不同的值


请参见

中的详细信息。您可以将元素放入键中:

$myarray[$element] = true;
然后你可以和我核对一下

if ($myarray[$element])

中的查找应该比数组值中的搜索快得多。

您可以将元素放入键中:

$myarray[$element] = true;
然后你可以和我核对一下

if ($myarray[$element])

在中的查找应该比在数组值中的搜索快得多。

您可以在数据库中使用unique约束吗?好的,您可以使用这些数组元素作为键构建哈希;然后您只需检查
isset($hash[$some\u element])
。。。但正如@Esailija所说,最佳解决方案是在另一个更合适的级别上引入此约束。看起来您可能需要在数据库中使用unique约束吗?您可以使用这些数组元素作为键构建哈希;然后您只需检查
isset($hash[$some\u element])
。。。但正如@Esailija所说,最佳的解决方案是在另一个更合适的层次上引入这个约束