Sometimes when working with API you simply want to keep an object an object. To access the object that has nested objects you could do the following:
We will assume when you print_r the object you might see this:
print_r($response);
stdClass object
(
[status] => success
[message] => Some message from the data
[0] => stdClass object
(
[first] => Robert
[last] => Saylor
[title] => Symfony Developer
)
[1] => stdClass object
(
[country] => USA
)
)
To access the first part of the object:
print $response->{'status'};
And that would output "success"
Now let's key the other parts:
$first = $response->{0}->{'first'};
print "First name: {$first}<br>";
The expected output would be "Robert" with a line break.
You can also re-assign part of the object to another object.
$contact = $response->{0};
print "First Name: " . $contact->{'first'} . "<br>";
The expected output would be "Robert" with a line break.
To access the next key "1" the process is the same.
print "Country: " . $response->{1}->{'country'} . "<br>";
The expected output would be "USA"
Hopefully this will help you understand objects and why we want to keep an object an object. You should not need to convert an object to an array to access its properties.