2017-01-11 21 views
0

PHPとSoapClientを使用して、配列を使用してサードパーティAPIにリクエストを渡すことに成功しました。 APIに渡されているXMLデータをSoapClientからダンプすることにより、PHP SoapClientリクエスト配列構造

は今、私は私が困っ配列として渡すことを抱えている< extendedData>のために必要なXML構造に遭遇しました。

<TypeID>int</TypeID> 
<FooID>int</FooID> 
<BarID>int</BarID> 
<extendedData> 
    <Service_CreateFields> 
     <FieldName>my string 1</FieldName> 
     <FieldValue>my string 2</FieldValue> 
     <Comments>my string 3</Comments> 
    </Service_CreateFields> 
    <Service_CreateFields> 
     <FieldName>my string 4</FieldName> 
     <FieldValue>my string 5</FieldValue> 
     <Comments>my string 6</Comments> 
    </Service_CreateFields> 
</extendedData> 

私は、次の配列を試みたが、それは二つ以上の< Service_CreateFields>

$data = array(
    "TypeID" => "11", 
    "FooID" => "22", 
    "BarID" => "33", 
    "extendedData" => array(
     "Service_CreateFields" => array(
       "FieldName" => "my string 1", 
       "FieldValue" => "my string 2", 
       "Comments" => "my string 3", 
      ), 
      "Service_CreateFields" => array(
       "FieldName" => "my string 4", 
       "FieldValue" => "my string 5", 
       "Comments" => "my string 6", 
      ), 
    ), 
); 

とXML要求は、誰もがこの経験を持ってい生成するのに失敗しましたか?

+0

'それはあなたのために子供を持つXMLを生成するService_CreateFields'としてXMLタグを持つことになります' extendedData'の利用foreachループ –

答えて

1

それ自身の配列内のそれぞれの子をラップしてみてください。

$data = array(
    "TypeID" => "11", 
    "FooID" => "22", 
    "BarID" => "33", 
    "extendedData" => array(
     "Service_CreateFields" => array(
      array(
       "FieldName" => "my string 1", 
       "FieldValue" => "my string 2", 
       "Comments" => "my string 3", 
      ), 
      array(
       "FieldName" => "my string 4", 
       "FieldValue" => "my string 5", 
       "Comments" => "my string 6", 
      ) 
     ) 
    ) 
); 
+0

はい、この配列構造うまくいった!どうもありがとう。 – Sam