You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP按typeId分组:如何用getById()实现元素相似值分组

按typeId分组元素的实现方法

先修正你代码里的两处问题:

  • 循环变量名混淆:foreach ($announcement as $announcements) 应改为 foreach ($announcements as $item)(假设$announcements是你获取到的所有元素集合)
  • getById调用参数错误:要使用当前元素的typeId,而非$this->typeId()

下面是实现按相同typeId分组的完整逻辑:

// 初始化分组数组
$group = [];

// 遍历所有元素
foreach ($announcements as $item) {
    // 获取当前元素的typeId
    $typeId = $item->typeId();
    // 若需要获取对应类型的详细信息,可调用DAO方法
    // $announcementType = $this->yourDaoInstance->getById($typeId);
    
    // 检查当前typeId的分组是否存在,不存在则初始化空数组
    if (!isset($group[$typeId])) {
        $group[$typeId] = [];
    }
    // 将当前元素添加到对应分组中
    $group[$typeId][] = $item;
}

逻辑说明

  • 以typeId作为分组数组的键,天然实现相同typeId元素的归类
  • 每次遍历先校验分组是否存在,避免直接赋值空数组报错
  • 最终$group的结构为:键是typeId,值为对应所有元素组成的数组

内容的提问来源于stack exchange,提问作者Lara M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:54:55