2017-04-05 27 views
0

私が現在使用してWebサービスから情報を取得しています:CodeIgniterのPHP - SOAP(WDSL)結果を解析

$serviceData= new SoapClient('http://xxx.xxx.xxx.xx:xx/WebService/WebService.svc?wsdl'); 
$response = $serviceData->GetMyInformation(); 
var_dump($response); 

のvar_dumpからの結果は以下の通りです:

object(stdClass)#15 (1) 
{ ["GetDatabaseResult"]=> object(stdClass)#16 (1) 
    { ["DatabaseInformation"]=> array(4) 

     { [0]=> object(stdClass)#17 (2) 
      { ["DateCreated"]=> string(19) "2016-07-06T09:36:03" ["CurrencyCode"]=> string(3) "USD" } 

      [1]=> object(stdClass)#18 (2) 
      { ["DateCreated"]=> string(19) "2016-12-07T02:49:02" ["CurrencyCode"]=> string(3) "USD" } 

      [2]=> object(stdClass)#19 (2) 
      { ["DateCreated"]=> string(19) "2016-12-07T02:52:38" ["CurrencyCode"]=> string(3) "USD" } 

      [3]=> object(stdClass)#20 (2) 
      { ["DateCreated"]=> string(19) "2016-12-07T02:53:38" ["CurrencyCode"]=> string(3) "USD" } 

     } 
    } 
} 

は何が必要なのforeachのです私はそれぞれのキーと値を取得することができますループ:

DateCreated: 2016-07-06T09:36:03 
CurrencyCode: USD 

私はトンを削除json_encode($response)を使用してみました彼object(stdClass)#15 (1)この点にそれを得たjson_dencode($response)

array(1) 
{ ["GetDatabaseResult"]=> array(1) 
    { ["DatabaseInformation"]=> array(4) 
     { [0]=> array(2) 
      { ["DateCreated"]=> string(19) "2016-07-06T09:36:03" ["CurrencyCode"]=> string(3) "USD" } 

      [1]=> array(17) 
      { ["DateCreated"]=> string(19) "2016-12-07T02:49:02" ["CurrencyCode"]=> string(3) "USD" } 

      [2]=> array(17) 
      { ["DateCreated"]=> string(19) "2016-12-07T02:52:38" ["CurrencyCode"]=> string(3) "USD" } 

      [3]=> array(17) 
      { ["DateCreated"]=> string(19) "2016-12-07T02:52:38" ["CurrencyCode"]=> string(3) "USD" } 

     } 
    } 
} 

私はそれがネストされた配列を知っているが、どのように私はそれを解析するのでしょうか?

答えて

1

エンコード/デコードループは不要です。試してみてください:

+0

これは素晴らしいです!あなたは、JSONを分割する方法と、$ response-> GetDatabaseResult-> DatabaseInformationに到達する方法について考えてみましょう。主に上記のJSON iが連想配列のように見えるので、私はいつでも適用することを知らないというこの問題を - >(オブジェクト)でした。 – Raidenlee

+0

var_dumpの出力から少し考えていますが、 'object(stdClass)'と表示されている場所であれば、 ' - >'であり、 '[]]ルックアップか' 「foreach」。配列検索のために適切なキーを使って試してみる必要があるかもしれませんが、それは必要なものだけです。 – Femi

+0

アドバイスをいただき、ありがとうございます。あなたの答えをアップアップしました。 – Raidenlee