Мне нужно передать многомерный массив в функцию soap. Но я не знаю, как должна выглядеть структура массива.
Вот выдержка из WSDL:
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="FunctionCode" type="xsd:int"/>
<xsd:element minOccurs="0" maxOccurs="1" name="Mandator" type="xsd:int"/>
xsd:element minOccurs="0" maxOccurs="1" name="Material" type="vt:ArrayOfCallMaterial"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
ArrayOfCallMaterial:
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="CallMaterial" type="vt:CallMaterial"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CallMaterial">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="id" type="xsd:string"/>
<xsd:element minOccurs="1" maxOccurs="1" name="quantity" type="xsd:float"/>
</xsd:sequence>
</xsd:complexType>
Вот как я строю свой параметр:
$requestParams = array(
'FunctionCode' => 1,
'Mandator' => 1,
'Material' => $material,
);
Массив материалов выглядит так:
Array
(
[0] => Array
(
[id] => 55A000009
[quantity] => 1.0000
)
[1] => Array
(
[id] => 55A000001
[quantity] => 10.0000
)
)
чем я вызываю Сервис:
$response = json_decode(json_encode($this->client->call($requestParams)), true);
проблема в том, что передается только первый элемент массива. Может ли кто-нибудь помочь мне построить правильную структуру?