You need to enable JavaScript to run this app. PHP如何在ID匹配时用另一个数组内容填充目标数组对应字段
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何在ID匹配时用另一个数组内容填充目标数组对应字段

实现方案

你可以先将用于填充的数组按id分组,再遍历目标数组完成填充,逻辑清晰且执行效率更高,完整代码如下:

// 你原有生成两个数组的代码
foreach ($query2 as $key2) {
   $result2[] = $key2;
}
        
foreach ($query as $value) {
      array_push($result , array(
       "id" => $value['id'],
       "name" => $value['name'],
       "msgSinLeer" => $value['msgSinleer'],
       "subject" => array(),
      ));
}

// 新增的填充逻辑
// 1. 把填充数据源按id分组,相同id的内容归类到一起
$groupedFillData = [];
foreach ($result2 as $fillItem) {
    $groupedFillData[$fillItem['id']][] = $fillItem;
}

// 2. 遍历目标数组,为subject字段赋值
foreach ($result as &$userInfo) {
    $currentId = $userInfo['id'];
    if (isset($groupedFillData[$currentId])) {
        $userInfo['subject'] = $groupedFillData[$currentId];
    }
}
// 解除引用,避免后续操作变量时出现异常
unset($userInfo);

// 输出最终结果
print_r($result);

注意事项

  • 注意字段名大小写问题,你原有代码里出现过msgSinleer和msgSinLeer两种写法,要和你实际数据库/数据源的字段名保持一致,否则会出现取值为空的问题。
  • 使用引用&遍历数组后一定要执行unset操作,否则后续修改$userInfo变量时会意外修改$result数组的最后一条元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:15:03