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
相关产品推荐
相关产品推荐

