首页 > 解决方案 > PHP检查对象数组中的值是否存在不止一次

问题描述

我在这里有一个带有多个对象的数组:

$batches = [
    [
        'id' => 2,
        'number' => 'ABC'
    ],
    [
        'id' => 3,
        'number' => 'ABC'
    ],
    [
        'id' => 4,
        'number' => 'DEF'
    ]
];

现在我需要知道是否有任何数字存在不止一次。在这种情况下,它的ABC.

我试过使用array_sumarray_column但这似乎只适用于数字:

$test = array_sum( array_column( $batches, 'number' ) );

标签: php

解决方案


用于array_count_values()计算重复次数。然后,您可以将其过滤为仅计数大于 1 的那些。

$results = array_keys(
    array_filter(array_count_values(array_column($batches, 'number')),
                 static function($count) { return $count > 1; }));

推荐阅读