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

PHP中两个不同键结构的数组合并到同一数组问题咨询

问题根源

  • 每次循环中直接覆盖$tempArray变量,没有将每次循环生成的元素即时追加到目标数组中
  • 最终的赋值操作写在两个循环全部结束之后,只会存入最后一次循环生成的单个元素

修正方案

直接在每次循环生成临时数组后,就追加到$dte['Detalle']里即可,不需要单独声明临时变量存储最后一次的结果,修正后代码如下:

// 前面初始化$dte的代码保持不变
$dte = [
    // 你原来的其他配置项
    'Detalle' => []
];

foreach ($datos["line_items"] as $line => $item) {  
    // 每次循环生成对应元素,直接追加到Detalle
    $dte['Detalle'][] = [     
        'NmbItem' => $item['name'],
        'QtyItem' => $item['quantity'],   
        'PrcItem' => $item['price'],
        'IndExe' => 1
    ];   
}

foreach($datos["fee_lines"] as $line => $fee){
    // 费用类元素直接追加,不需要IndExe字段也不影响结构
    $dte['Detalle'][] = [     
        'NmbItem' => $fee['name'],
        'QtyItem' => 1,
        'PrcItem' => $fee['total']
    ];
}  

最终$dte['Detalle']就会是你期望的结构,两个循环的所有元素会按顺序拼接在一起,各自保留自己的字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:15:04