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条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?