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

嵌套数组处理:合并首元素相同的子数组对应元素

合并嵌套数组中首元素相同的子数组

需求说明

给定嵌套数组:

$cars = [
  [2022, "Corolla"],
  [2022, "Toyota"],
  [2021, "Corolla"],
  [2021, "Toyota"],
  [2021, "Honda"]
];

需要把首元素(年份)相同的子数组合并,将对应车型整合到同一子数组,最终得到:

$resultCars = [
  [2022, "Corolla", "Toyota"],
  [2021, "Corolla", "Toyota", "Honda"]
];

实现方案

通过遍历分组+格式转换即可完成,代码如下:

$cars = [
  [2022, "Corolla"],
  [2022, "Toyota"],
  [2021, "Corolla"],
  [2021, "Toyota"],
  [2021, "Honda"]
];

$grouped = [];
foreach ($cars as $item) {
    $year = $item[0];
    $model = $item[1];
    
    // 初始化年份分组
    if (!isset($grouped[$year])) {
        $grouped[$year] = [$year];
    }
    // 追加车型到对应分组
    $grouped[$year][] = $model;
}

// 转换为索引数组,得到目标结果
$resultCars = array_values($grouped);

// 验证输出
print_r($resultCars);

逻辑解释

  1. 用$grouped临时关联数组存储分组结果,键为年份,值是包含年份和所有对应车型的数组;
  2. 遍历原始数组时,先检查当前年份是否已有分组,没有则创建以年份开头的子数组;
  3. 把车型追加到对应年份的分组里;
  4. 最后用array_values()把关联数组转为索引数组,结构就和目标一致了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:20:32