gpt4 book ai didi

PHP性能问题: Faster to leave duplicates in array that will be searched or do array_unique?

转载 作者:行者123 更新时间:2023-12-03 02:16:52 24 4
gpt4 key购买 nike

我有向数组添加值的代码。稍后在我的代码的另一部分中搜索该数组。添加到数组中的值不一定是唯一的,因此在搜索的数组中可能会出现重复的值。从技术上讲,即使搜索数组中存在重复项,我的代码也可以正常工作,并且我将能够找到该值。我只想知道该值是否在被搜索的数组中,并不关心它是在数组中1次还是10000次。

我的问题是,在进行搜索之前,是否首选(出于性能和/或风格原因)对正在搜索的数组执行 array_unique() 。

例如,假设我想搜索这样的数组:

$searchMe = Array("dog", "cat", "mouse", "dog", "dog", "dog");

请注意,“dog”出现了 4 次。如果我想在该数组中搜索值“dog”,它将正常工作,并且我将能够知道它存在。如上所述,我不在乎它出现了多少次,我只想知道它是否存在。

那么我应该在搜索之前先执行此操作,然后再搜索重复数据删除的数组吗?

$searchMe_cleaned = array_unique($searchMe);

也就是说,这会比仅搜索具有重复项的数组更快吗?

请记住,虽然在本例中搜索的数组只有几个元素,但搜索的实际数组可能有数百或数千个元素。

谢谢!

最佳答案

我认为 array_uniquein_array 慢,但如果您想多次搜索数组或想节省内存,那么这是有意义的。

另一个选择是使用 array_flip (这也会删除重复的键),然后使用 issetarray_key_exists 因为它们比 in_array 快得多,我个人会这样做。

关于PHP性能问题: Faster to leave duplicates in array that will be searched or do array_unique?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5036504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com