I am currently retrieving information from a Web Service using:
$serviceData= new SoapClient('http://xxx.xxx.xxx.xx:xx/WebService/WebService.svc?wsdl');
$response = $serviceData->GetMyInformation();
var_dump($response);
The result from var_dump is below:
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" }
}
}
}
What I need is a foreach loop that I can retrieve each key and value:
DateCreated: 2016-07-06T09:36:03
CurrencyCode: USD
I tried using json_encode($response)
which removed the object(stdClass)#15 (1)
and the json_dencode($response)
which got it to this point:
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" }
}
}
}
I know it's a nested array, but how would I parse it?
No need for the encode/decode loop. Try this:
foreach($response->GetDatabaseResult->DatabaseInformation as $entry){
error_log("Date Created: ".$entry->DateCreated."; Currency Code: ".$entry->CurrencyCode);
}