You need to enable JavaScript to run this app. PHP如何使用内置数组函数将对象数组按方法返回值分组
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何使用内置数组函数将对象数组按方法返回值分组

PHP按对象属性分组的简洁实现

PHP原生没有专门的数组分组内置函数,使用内置函数array_reduce即可实现需求,完全避免冗余foreach循环和额外变量覆写操作,实现代码如下:

$grouped = array_reduce($objs, function ($result, $currentObj) {
    $userId = $currentObj->getUserId();
    $result[$userId][] = $currentObj;
    return $result;
}, []);

实现逻辑说明

  • 第三个参数传入空数组作为分组结果的初始容器
  • 每次迭代时取出当前对象的用户ID作为分组键,将对象追加到对应键的数组子集内
  • 迭代完成后直接返回的$grouped就是你需要的分组结构

另外你之前写的array_map代码存在语法错误,return = $obj->getUserId();多了多余的等号,修正后应为return $obj->getUserId();。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 06:45:03