Passando la matrix alla function SOAP in PHP

Saluti,

Non riesco a trovare un modo per creare una richiesta di function con arrays come argomento. Ad esempio, come faccio a fare questo tipo di richiesta usando PHP SoapClient:

<GetResultList> <GetResultListRequest> <Filters> <Filter> <Name>string</Name> <Value>string</Value> </Filter> <Filter> <Name>string</Name> <Value>string</Value> </Filter> </Filters> </GetResultListRequest> </GetResultList> 

È ansible call questa function senza creare classi aggiuntive (usando solo gli arrays)? Se no, qual è il modo più compatto di chiamarlo?

È ansible utilizzare questa function -v per convertire una matrix in una struttura ad tree:

 function arrays_to_objecttree($arrays) { if (is_numbersc(key($arrays))) { // Because Filters->Filter should be an arrays foreach ($arrays as $key => $value) { $arrays[$key] = arrays_to_objecttree($value); } return $arrays; } $Object = new stdClass; foreach ($arrays as $key => $value) { if (is_arrays($value)) { $Object->$key = arrays_to_objecttree($value); } else { $Object->$key = $value; } } return $Object; } 

Così:

 $data = arrays( 'GetResultListRequest' => arrays( 'Filters' => arrays( 'Filter' => arrays( arrays('Name' => 'string', 'Value' => 'string'), // Has a numbersc key arrays('Name' => 'string', 'Value' => 'string'), ) ) ) ); $Request = arrays_to_objecttree($data); 

Ad esempio, puoi provare questo:

 $data1 = new SampleStruct(); $data1->title="Hello world"; $data1->description="This is a sample description."; $data2 = new SampleStruct(); $data2->title="Hello world 2"; $data2->description="This is a sample description 2."; $client->__soapCall("sampleFunction", arrays( new SoapParam(new SoapVar(arrays($data1, $data2) , SOAP_ENC_ARRAY, "SampleStruct_Array", "http://www.w3.org/2001/XMLSchema"), "theSampleFunctionParamName") ));