我相信这是一个非常明显的问题,有一个函数可以做到这一点,但我似乎找不到它.在PHP中,我想知道数组中是否有重复项,并且尽可能高效.我不想像array_unique那样删除它们,我也不特别想运行array_unique并将其与原始数组进行比较,看看它们是否相同,因为这似乎效率很低.就性能而言,"预期条件"是数组没有重复项.

我只是希望能够做一些像这样的事情

if (no_dupes($array))
    // this deals with arrays without duplicates
else
    // this deals with arrays with duplicates

Is there any obvious function I'm not thinking of?
How to detect duplicate values in PHP array?
has the right title, and is a very similar question, however if you actually read the question, he's looking for array_count_values.

推荐答案

你可以做:

function has_dupes($array) {
    $dupe_array = array();
    foreach ($array as $val) {
        if (++$dupe_array[$val] > 1) {
            return true;
        }
    }
    return false;
}

Php相关问答推荐

我需要多个SELECT语句的结果(使用由php ECHO创建的表中显示的Limit(X)

WooCommerce购物车中仅允许一个可下载产品

添加登录:需要app.yaml仍然允许所有拥有Google帐户的人访问

将一个按钮添加到WooCommerce产品的管理视图中,该按钮链接到一个自定义的WebHook,并在末尾附加产品ID

Chillerlan/php-iOS名称字段的QR vCard错误

未收到Strava WebHook事件数据

如何解决 Laravel 外键错误?

htaccess 配置提供静态文件和动态文件

打折时更改 Woocommerce 产品名称

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

根据页面以及是否在促销,向 WooCommerce 中显示的价格添加前缀

我不明白为什么我收到未定义的数组键异常错误 - Laravel 9 PHP 8

PHP 在数组中搜索值

添加或删除优惠券后自动刷新 WooCommerce checkout 表单字段

WooCommerce订单支付页面上的附加支付订单按钮

在WooCommerce我的账户单个订单页面中添加订单商品部分和按钮

如何从此字符串创建 Carbon 对象:2022-06-21T05:52:46.648533678Z?

PHP/Laravel 中的自定义时区

Php 的新WeakMap - 枚举曾经被垃圾收集过吗?

列表不在 GROUP BY 子句中并且包含 X2CRM 中的非聚合列