php - PHP检查对象数组中的值是否存在不止一次
问题描述
我在这里有一个带有多个对象的数组:
$batches = [
[
'id' => 2,
'number' => 'ABC'
],
[
'id' => 3,
'number' => 'ABC'
],
[
'id' => 4,
'number' => 'DEF'
]
];
现在我需要知道是否有任何数字存在不止一次。在这种情况下,它的ABC
.
我试过使用array_sum
,array_column
但这似乎只适用于数字:
$test = array_sum( array_column( $batches, 'number' ) );
解决方案
用于array_count_values()
计算重复次数。然后,您可以将其过滤为仅计数大于 1 的那些。
$results = array_keys(
array_filter(array_count_values(array_column($batches, 'number')),
static function($count) { return $count > 1; }));
推荐阅读
- google-chrome - 如何使用不同的 Chrome devtools 协议版本
- python - Scrapy Xpath 不包含命令不起作用
- mysql - 将当前 Auth 用户帖子添加到 Laravel eloquent join 查询
- c++ - 如何将结构上的操作与其成员上的操作同步?
- css - Internet Explorer 11 中的 CSS flex
- javascript - 为什么调整大小事件只触发一次
- javascript - 创建 ESLint CLIEngine 时出现问题
- swift - 将图像上传到 Firebase Storage Swift 时内存崩溃
- notifications - 客户端 Blazor 应用程序,按下按钮时向计算机上的应用程序发送通知
- simulate - 使用每个级别的已知值模拟分类变量