donglanzhan7151 2015-05-22 14:19
浏览 65
已采纳

将固定的xml添加到php foreach的末尾

We're trying to add a fixed value to the end of the an array, the code we currently have is:

        foreach ($items as $k => $value) 
        {
            $xml['Contact']['Document']['Item'][$k]['Partcode'] = $value['sku'];
            $modifiers = '';
            if($modifiers_arr = json_decode($value['modifiers']))
            {
                foreach ($modifiers_arr as $mod_key => $mod_val) 
                {
                    $modifiers .= "{$mod_val->modifier_name} {$mod_val->modifier_value} ";
                    if(@$mod_val->price_mod)
                    {
                        $modifiers .= "{$mod_val->price_mod} ";
                    }
                }
            }
            $xml['Contact']['Document']['Item'][$k]['Description'] = "{$value['title']} {$modifiers}";
            $xml['Contact']['Document']['Item'][$k]['Quantity'] = "{$value['item_qty']}";
            $xml['Contact']['Document']['Item'][$k]['UnitPrice'] = "{$value['price']}";
            $xml['Contact']['Document']['Item'][$k]['UnitTax'] = round($value['item_tax'] / $value['item_qty'],2);
            $xml['Contact']['Document']['Item'][$k]['UnitNetPrice'] = $value['price'] - round(($value['item_tax'] / $value['item_qty']),2);
        }

Which outputs:

  <Item>
    <Partcode>GRF72</Partcode>
    <Description>Odour Eliminator   </Description>
    <Quantity>1</Quantity>
    <UnitPrice>4.99</UnitPrice>
    <UnitTax>0.83</UnitTax>
    <UnitNetPrice>4.16</UnitNetPrice>
  </Item>

However we want to add a fixed value after this (there can be an unlimited amount of items returned from the array), so it would end up looking like:

  <Item>
    <Partcode>GRF72</Partcode>
    <Description>Product title</Description>
    <Quantity>1</Quantity>
    <UnitPrice>4.99</UnitPrice>
    <UnitTax>0.83</UnitTax>
    <UnitNetPrice>4.16</UnitNetPrice>
  </Item>
  <Item>
    <Partcode>CAR01</Partcode>
    <Description>Delivery</Description>
    <Quantity>1</Quantity>
    <UnitPrice>4.99</UnitPrice>
    <UnitTax>0</UnitTax>
    <UnitNetPrice>4.99</UnitNetPrice>
  </Item>

Have tried just added this code after the array, but it doesn't format it correctly, any ideas?

    $xml['Contact']['Document']['Item']['Partcode'] =  "CAR01";
    $xml['Contact']['Document']['Item']['Description'] = "Shipping";
    $xml['Contact']['Document']['Item']['Quantity'] =  "1";
    $xml['Contact']['Document']['Item']['UnitPrice'] =  $order_data['order_shipping'];
    $xml['Contact']['Document']['Item']['UnitTax'] = "0";
    $xml['Contact']['Document']['Item']['UnitNetPrice'] = $order_data['order_shipping'];

Simply outputs as:

  <Item>
    <Partcode>GRF72</Partcode>
    <Description>Odour Eliminator   </Description>
    <Quantity>1</Quantity>
    <UnitPrice>4.99</UnitPrice>
    <UnitTax>0.83</UnitTax>
    <UnitNetPrice>4.16</UnitNetPrice>
  </Item>
  <Item>CAR01</Item>
  <Item>Shipping</Item>
  <Item>1</Item>
  <Item>0.00</Item>
  <Item>0</Item>
  <Item>0.00</Item>
  • 写回答

2条回答 默认 最新

  • dqrl3595 2015-05-22 14:24
    关注

    You're currently only adding new key-value pairs to the $xml['Contact']['Document']['Item'] dictionary, when you're supposed to add a new dictionary there.

    You need to define a key for this new item also and add with that.

    $somekey = "somevalue";
    $xml['Contact']['Document']['Item'][$somekey]['Partcode'] =  "CAR01";
    $xml['Contact']['Document']['Item'][$somekey]['Description'] = "Shipping";
    $xml['Contact']['Document']['Item'][$somekey]['Quantity'] =  "1";
    $xml['Contact']['Document']['Item'][$somekey]['UnitPrice'] =  $order_data['order_shipping'];
    $xml['Contact']['Document']['Item'][$somekey]['UnitTax'] = "0";
    $xml['Contact']['Document']['Item'][$somekey]['UnitNetPrice'] = $order_data['order_shipping'];
    

    The value of the $somekey depends on your application.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行