PHP, 给一个数组添加一个key,组成一个正确的SOAP请求

PHP, adding a key to an array to form a correct SOAP request

我正在尝试提出 soap 请求。 从示例请求中可以看出,标记 CustomerReferences 被报告了两次。 在我最初的 PHP 请求(有效)中,它只存在类型为“CUSTOMER_REFERENCES”的第一个标签“

我想将类型为 P_O_NUMBER 的第二个添加到一个已经存在的数组中。

       $parcelinfo = array();
        $parcelinfo["1"] = array(
            'SequenceNumber' => 1 + 1,
            'GroupPackageCount' => 1,
            'Weight' => array(
                'Value' => 10,
                'Units' => 20
            ),
            'CustomerReferences' => array(
                'CustomerReferenceType' => 'CUSTOMER_REFERENCE',
                'Value' => 12345
            )
        );

给定这个原始数组,如果我这样做:

        $parcelinfo["1"][] = array(
            'CustomerReferences' => array(
                'CustomerReferenceType' => 'P_O_NUMBER',
                'Value' => "TESTSKU"
            )
        );

我得到下面的图片

如何将该密钥添加到现有帐户以符合示例请求?

你应该从下面的数组开始。请注意 CustomerReferences 是数组的数组。这将导致 soap 请求中有两个 CustomerReference。

$parcelinfo = [
    [
        'SequenceNumber' => 1 + 1,
        'GroupPackageCount' => 1,
        'Weight' => [
            'Value' => 10,
            'Units' => 20
        ],
        'CustomerReferences' => [
            [
                'CustomerReferenceType' => 'CUSTOMER_REFERENCE',
                'Value' => 12345
            ]
        ]
    ]
];

添加你只需执行以下操作

$parcelinfo[0]["CustomerReferences"][] = [
                'CustomerReferenceType' => 'P_O_NUMBER',
                'Value' => "This is your po"
            ];

您得到的回复是