使用PHP-Soap客户端的多维数组

使用PHP-Soap客户端的多维数组,php,arrays,soap,soap-client,Php,Arrays,Soap,Soap Client,我正在尝试创建一个SOAP客户端,但我需要按照文档中的要求发送一个多维数组(我认为),示例如下: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.senior.com.br"> <soapenv:Body> <ser:ColaboradoresAdmitidos> <user

我正在尝试创建一个SOAP客户端,但我需要按照文档中的要求发送一个多维数组(我认为),示例如下:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.senior.com.br">
  <soapenv:Body>
    <ser:ColaboradoresAdmitidos>
      <user>String</user>
      <password>String</password>
      <encryption>Integer</encryption>
      <parameters>
        <NumEmp>Integer</NumEmp>
        <AbrTipCol>String</AbrTipCol>
        <IniPer>DateTime</IniPer>
        <FimPer>DateTime</FimPer>
      </parameters>
    </ser:ColaboradoresAdmitidos>
  </soapenv:Body>
</soapenv:Envelope>

但是在请求中,它似乎不接受数组,事实上我做了一些测试,除了前3个参数,但没有一个输入生成的XML

我已经以不同的方式创建了数组,并更改了参数值,但它始终返回如下:

<?xml version="1.0" encoding="UTF-8"?>\n
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://services.senior.com.br">
    <SOAP-ENV:Body> 
        <ns1:ColaboradoresAdmitidos>
            <user>xxxxxxx</user>
            <password>xxxxxxxxx</password>
            <encryption>0</encryption>
            <parameters/>
        </ns1:ColaboradoresAdmitidos>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
\n
xxxxxxx
xxxxxxxxx
0

有人可以帮我,因为服务器知道缺少参数,所以我无法执行查询。

在互联网上搜索时,我发现很多人都有这个问题,但他们无法解决。我发现了错误。 当参数与WSDL中注册的参数不匹配时,就会发生这种情况。在我的例子中:文档用大写字母提到参数,但是,我不得不用小写字母

似乎参数键必须与wsdl中注册的值相同。 例:


可以使用循环来代替发送多个soap请求吗。
<?xml version="1.0" encoding="UTF-8"?>\n
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://services.senior.com.br">
    <SOAP-ENV:Body> 
        <ns1:ColaboradoresAdmitidos>
            <user>xxxxxxx</user>
            <password>xxxxxxxxx</password>
            <encryption>0</encryption>
            <parameters/>
        </ns1:ColaboradoresAdmitidos>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
$arguments = [
'user' => 'xxxxx',
'password' => 'xxxxxxxxxx',
'encryption' => 0,
'parameters' => array(
    'numEmp' => 1, 
    'abrTipCol' => '1', 
    'iniPer' => '01/01/2019', 
    'fimPer' => null
)];