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

如何在PHP中合并首元素重复的多维数组(仅合并第二个元素)

PHP合并同一PersonID的技能数组

你可以通过遍历原始数组,以personID为键临时存储技能,最后再整理成目标格式,具体实现如下:

实现代码

<?php
// 原始数据
$data = array(
    array(1, "Writing"),
    array(3, "Designing"),
    array(1, "Problem Solving"),
    array(3, "Communication"),
    array(5, "Writing"),
    array(5, "Planning and organising"),
    array(5, "Communication"),
    array(1, "Designing"),
    array(2, "Leadership"),
    array(2, "Communication"),
    array(2, "Designing")
);

// 临时数组:以personID为键,存储对应ID和技能
$temp = [];
foreach ($data as $item) {
    $personId = $item[0];
    $skill = $item[1];

    // 首次遇到该ID时,初始化数组并放入ID
    if (!isset($temp[$personId])) {
        $temp[$personId] = [$personId];
    }
    // 将技能追加到对应ID的数组中
    $temp[$personId][] = $skill;
}

// 提取临时数组的所有值,重置数字索引,得到目标格式
$result = array_values($temp);

// 输出验证
print_r($result);
?>

代码逻辑说明

  1. 临时数组中转:用$temp数组的键来唯一标识personID,避免重复处理同一用户
  2. 遍历收集技能:逐个读取原始数组的元素,把技能追加到对应ID的数组里
  3. 格式转换:通过array_values()把以ID为键的数组转换成连续数字索引的数组,完全匹配你需要的输出格式

运行这段代码后,$result就是你要的合并后的数据结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:45:40