具有两个相同密钥的PHP数组(SOAP)

具有两个相同密钥的PHP数组(SOAP),php,soap,Php,Soap,我正在尝试与DHLAPI(SOAP)通信。我可以制作一个新包裹,但当我使用额外服务进行发货时,我必须使用两个(或更多)项目键构建查询,如: <specialServices> <item> <serviceType>UBEZP</serviceType> <serviceValue>10000</serviceValue> </item> <item&

我正在尝试与DHLAPI(SOAP)通信。我可以制作一个新包裹,但当我使用额外服务进行发货时,我必须使用两个(或更多)项目键构建查询,如:

<specialServices>
    <item>
        <serviceType>UBEZP</serviceType>
        <serviceValue>10000</serviceValue>
    </item>
    <item>
        <serviceType>COD</serviceType>
        <serviceValue>2000</serviceValue>
    </item>
</specialServices>
与此类似,但PHP只能使用一个同名键,因此第二个键重写第一个键:

'specialServices' => array(
    'collectOnDeliveryForm' => 'BANK_TRANSFER',
    'item' => array(
        'serviceType' => 'UBEZP',
        'serviceValue' => '10000'
    ),
    'item' => array(
        'serviceType' => 'COD',
        'serviceValue' => '5000'
    )
)
名为“item”的内部数组必须是带数组的索引数组


检查此答案

我建议参考他们的xml或soap API,有时您必须将嵌套数组放入数据元素中,例如数组('data'=>array('item=>array(…),array()),这样做是为了向xml标记添加属性,通常使用'@attributes'标记等。。
'specialServices' => array(
    'collectOnDeliveryForm' => 'BANK_TRANSFER',
    'item' => array(
        'serviceType' => 'UBEZP',
        'serviceValue' => '10000'
    ),
    'item' => array(
        'serviceType' => 'COD',
        'serviceValue' => '5000'
    )
)