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

按日期分组二维数组 合并name字段为逗号分隔字符串

解决二维数组按date分组并合并name的问题

嘿,我懂你要实现的需求——把相同日期下的name字段合并成逗号分隔的字符串,之前的方案没达到预期可能是因为没有精准地按date做分组处理。这里给你一个简单直接的PHP实现方案:

首先是完整的代码示例:

$missedFridgeLog = [
    [ "date" => "01/01/18", "name" => "Medicine" ],
    [ "date" => "01/01/18", "name" => "Drugs" ],
    [ "date" => "02/01/18", "name" => "Medicine" ],
    [ "date" => "02/01/18", "name" => "Drugs" ]
];

// 初始化分组容器
$groupedData = [];

foreach ($missedFridgeLog as $entry) {
    $currentDate = $entry['date'];
    
    // 如果当前日期还未创建分组,先初始化
    if (!isset($groupedData[$currentDate])) {
        $groupedData[$currentDate] = [
            'date' => $currentDate,
            'name' => []
        ];
    }
    
    // 将当前条目name加入对应日期的数组
    $groupedData[$currentDate]['name'][] = $entry['name'];
}

// 把每组的name数组转为逗号分隔字符串,并重置索引
$finalResult = array_map(function($group) {
    $group['name'] = implode(',', $group['name']);
    return $group;
}, array_values($groupedData));

// 查看结果
print_r($finalResult);

代码逻辑说明:

  • 第一步遍历原始数组,用date作为分组键,确保相同日期的条目会被归到同一组中;
  • 每个分组先把name存为数组,方便后续批量合并;
  • 最后用array_map配合implode将每组的name数组转为逗号分隔的字符串,再通过array_values重置数组索引,就能得到你想要的输出格式。

这个方案逻辑清晰,不管同日期下有多少个name条目,都能正确合并,而且容易调试和维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:43:39