PHP SoapClient是否有多个同名参数?

PHP SoapClient是否有多个同名参数?,php,arrays,xml,soap,wsdl,Php,Arrays,Xml,Soap,Wsdl,我正在尝试用PHP进行SOAP调用,它正常工作,但我有一个疑问:如何将参数传递给XML,根据产品数量数组创建新节点?看这个 这是我在SoapUI中的XML(其中重要的部分是:ITEMSITM>TITEMSITM。第一个TITEMSITM是字段,其他的都是相同的): 上面的代码调用没有问题,但是当我打印或var转储$arguments时,我看到重复使用TITEMSITM只发送一个产品。我认为这很简单,但我不明白。有人能帮我吗 参考资料: 这样做之所以有效,是因为它将密切模拟WSDL的数据结

我正在尝试用PHP进行SOAP调用,它正常工作,但我有一个疑问:如何将参数传递给XML,根据产品数量数组创建新节点?看这个

这是我在SoapUI中的XML(其中重要的部分是:ITEMSITM>TITEMSITM。第一个TITEMSITM是字段,其他的都是相同的):

上面的代码调用没有问题,但是当我打印或var转储$arguments时,我看到重复使用TITEMSITM只发送一个产品。我认为这很简单,但我不明白。有人能帮我吗

参考资料:

这样做之所以有效,是因为它将密切模拟WSDL的数据结构

这样做之所以有效,是因为它将密切模拟WSDL的数据结构

这样做之所以有效,是因为它将密切模拟WSDL的数据结构


这样做之所以有效,是因为它将密切模拟WSDL的数据结构。

以下是我使用的代码样式:

$wsdl = 'https://your.api/path?wsdl';
$client = new SoapClient($wsdl);
$multipleSearchValues = [1, 2, 3, 4];
$queryData = ['yourFieldName' => $multipleSearchValues];
$results = $client->YourApiMethod($queryData);
print_r($results);

以下是我使用的代码样式:

$wsdl = 'https://your.api/path?wsdl';
$client = new SoapClient($wsdl);
$multipleSearchValues = [1, 2, 3, 4];
$queryData = ['yourFieldName' => $multipleSearchValues];
$results = $client->YourApiMethod($queryData);
print_r($results);

以下是我使用的代码样式:

$wsdl = 'https://your.api/path?wsdl';
$client = new SoapClient($wsdl);
$multipleSearchValues = [1, 2, 3, 4];
$queryData = ['yourFieldName' => $multipleSearchValues];
$results = $client->YourApiMethod($queryData);
print_r($results);

以下是我使用的代码样式:

$wsdl = 'https://your.api/path?wsdl';
$client = new SoapClient($wsdl);
$multipleSearchValues = [1, 2, 3, 4];
$queryData = ['yourFieldName' => $multipleSearchValues];
$results = $client->YourApiMethod($queryData);
print_r($results);


是的,很简单。在PHP数组中,一个键只能存在一次。这就是为什么后面对键
TITEMSITM
的赋值会覆盖前面的赋值(请重新阅读这些基本的PHP数组基础知识,这不会有什么坏处)。最后一个赢了。删除最内部数组中的键并重试,这应该可以工作,但我不能完全确定SOAPClient及其参数的数组表示法。我用这些键来举例说明我的疑问以及我想如何解决。现在,我只需要知道如何做到这一点,不要覆盖最后一个'TITEMSITM',而是创建新闻'TITEMSITM',并添加产品信息=/尝试使用类似以下内容:
'ITEMSITM'=>array('TITEMSITM'=>array($parsItem[0],$parsItem[1],…)…
这样你就有了一个包含这些项的数组的密钥。IIRC应该可以工作,但我不是100%确定。这是因为我上次做了一段时间。通过这种方式,它捕获了所有产品的信息,好吧,但不要创建其他的“TITEMSITM”,它只理解一个项。XML需要通过你知道吗?谢谢你的评论。是的,我知道,这从一开始就很清楚。但是如果这不起作用(我看了两遍,你可能会删掉里面的一个),我没有提示了。玩一下,试试看,你也可以搜索类似的问答。你甚至可以在评论或问题中链接到这里(顺便说一句,这是一个很好的实践。链接并解释什么对你有用或不有用,这里有一个例子:)是的,它很简单。在PHP数组中,一个键只能存在一次。这就是为什么后来对键
TITEMSITM
的赋值会覆盖以前的赋值(请重新阅读这些基本的PHP数组基础知识-这不会有什么坏处)。所以最后一个赢了。删除最内部数组中的键,然后重试,这应该会起作用,但我不能完全确定SOAPClient及其参数的数组表示法。我用这些键来举例说明我的疑问以及我想如何解决。现在,我只需要知道如何做到这一点,不要覆盖最后的“TITEMSITM”,而是创建新闻'TITEMSITM's并添加产品信息=/尝试使用类似以下内容:
'ITEMSITM'=>array('TITEMSITM'=>array($parsItem[0],$parsItem[1],…)…
这样你就有了一个包含这些项的数组的密钥。IIRC应该可以工作,但我不是100%确定。这是因为我上次做了一段时间。通过这种方式,它捕获了所有产品的信息,好吧,但不要创建其他的“TITEMSITM”,它只理解一个项。XML需要通过你知道吗?谢谢你的评论。是的,我知道,这从一开始就很清楚。但是如果这不起作用(我看了两遍,你可能会删掉里面的一个),我没有提示了。玩一下,试试看,你也可以搜索类似的问答。你甚至可以在评论或问题中链接到这里(顺便说一句,这是一个很好的实践。链接并解释什么对你有用或不有用,这里有一个例子:)是的,它很简单。在PHP数组中,一个键只能存在一次。这就是为什么后来对键
TITEMSITM
的赋值会覆盖以前的赋值(请重新阅读这些基本的PHP数组基础知识-这不会有什么坏处)。所以最后一个赢了。删除最内部数组中的键,然后重试,这应该会起作用,但我不能完全确定SOAPClient及其参数的数组表示法。我用这些键来举例说明我的疑问以及我想如何解决。现在,我只需要知道如何做到这一点,不要覆盖最后的“TITEMSITM”,而是创建新闻'TITEMSITM's并添加产品信息=/尝试使用类似以下内容:
'ITEMSITM'=>array('TITEMSITM'=>array($parsItem[0],$parsItem[1],…)…
这样你就有了一个包含这些项的数组的密钥。IIRC应该可以工作,但我不是100%确定。这是因为我上次做了一段时间。通过这种方式,它捕获了所有产品的信息,好吧,但不要创建其他的“TITEMSITM”,它只理解一个项。XML需要通过你知道吗?谢谢你的评论。是的,我知道,这从一开始就很清楚。但是如果这不起作用(我看了两遍,你可能会删掉里面的一个),我没有提示了。玩一下,试试看,你也可以搜索类似的问答。你甚至可以在评论或问题中链接到这里(顺便说一句,这是一个很好的实践。链接并解释什么对你有用或不有用,这里有一个例子:)是的,它很简单。在PHP数组中,一个键只能存在一次。这就是为什么后来对键
TITEMSITM
的赋值被覆盖的原因