для переноса ассоциативного массива php через мыло, вам нужно определить следующее в вашем wsdl:
<xsd:complexType name="KeyValueData">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="id" type="string"/>
<xsd:element minOccurs="1" maxOccurs="1" name="name" type="string"/>
<xsd:element minOccurs="1" maxOccurs="1" name="data" type="string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfKeyValueData">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded"
name="keyval" type="tns:KeyValueData"/>
</xsd:sequence>
</xsd:complexType>
теперь укажите ваш новый определенный тип ArrayOfKeyValueData в качестве типа вашего результата или в качестве параметра
<message name='getPostStatsResponse'>
<part name='Result' type='ArrayOfKeyValueData'/>
</message>
и укажите операцию с чем-то вроде
<operation name='getPostStats'>
<input message='tns:getPostStatsRequest'/>
<output message='tns:getPostStatsResponse'/>
</operation>
это будет нормально работать с неким веб-сервисом, написанным на php, который возвращает что-то вроде
return array("k1" => "v1", "k2" => "v2");
если вы используете php в качестве клиента, вы получите точно такой же массив на стороне клиента. другие языки или мыльные библиотеки могут создавать другую структуру, поскольку не каждый язык имеет такую концепцию «ассоциативного массива».