【发布时间】:2011-03-09 21:43:24
【问题描述】:
我确信这是一个非常明显的问题,并且有一个函数可以做到这一点,但我似乎找不到它。在 PHP 中,我想尽可能高效地知道我的数组中是否有重复项。我不想像array_unique 那样删除它们,我也不想特别想运行array_unique 并将其与原始数组进行比较以查看它们是否相同,因为这似乎非常低效。就性能而言,“预期条件”是数组没有重复。
我只是希望能够做类似的事情
if (no_dupes($array))
// this deals with arrays without duplicates
else
// this deals with arrays with duplicates
有什么我没有想到的明显功能吗?
How to detect duplicate values in PHP array?
有正确的标题,并且是一个非常相似的问题,但是如果你真的阅读了这个问题,他正在寻找 array_count_values。
【问题讨论】:
-
您是否只想知道是否有重复或重复的数量和价值等?
-
我只需要知道是否有任何重复。返回一个布尔值是完美的。
-
老实说,我认为
if(count($array) == count(array_unique($array)))是你能得到的最好的。您必须以这种或另一种方式遍历数组,我认为内置为此进行了优化。array_flip也可以考虑。 -
@Felix,你可以做得更好。这会执行三个循环,一个用于创建唯一数组,一个用于计算它,一个用于计算原始数组。
-
@Mike Sherov:你确定吗?我找不到任何关于它的信息,但我希望 PHP 数组有一些内部属性来跟踪长度。你有这方面的信息吗?我会很感兴趣的。
标签: php arrays duplicates