有一个像这样的对象;
object(stdClass)#9 (8) {
["Results"]=>
array(3) {
[0]=>
object(stdClass)#10 (5) {
["EmailAddress"]=>
string(22) "38ec95a@emailtests.com"
["Name"]=>
string(13) "Daniel Crabbe"
["Date"]=>
string(19) "2011-07-11 13:00:00"
["State"]=>
string(6) "Active"
["CustomFields"]=>
array(0) {
}
}
[1]=>
object(stdClass)#11 (5) {
["EmailAddress"]=>
string(12) "dan@jynk.net"
["Name"]=>
string(13) "Daniel Crabbe"
["Date"]=>
string(19) "2011-10-11 12:43:00"
["State"]=>
string(6) "Active"
["CustomFields"]=>
array(0) {
}
}
[2]=>
object(stdClass)#12 (5) {
["EmailAddress"]=>
string(23) "nikolaprice@hotmail.com"
["Name"]=>
string(12) "Nicola Price"
["Date"]=>
string(19) "2011-08-25 16:24:00"
["State"]=>
string(6) "Active"
["CustomFields"]=>
array(0) {
}
}
}
["ResultsOrderedBy"]=>
string(5) "email"
["OrderDirection"]=>
string(3) "asc"
["PageNumber"]=>
int(1)
["PageSize"]=>
int(150)
["RecordsOnThisPage"]=>
int(3)
["TotalNumberOfRecords"]=>
int(3)
["NumberOfPages"]=>
int(1)
}
并尝试遍历数组(3)并获取电子邮件地址;
foreach($subscribed_result->results as $sr){
$res++;
echo $res.": ".$sr->EmailAddress." ".$sr['EmailAddress']." ";
}
和几个变化,但无处可去。什么是理解?
更新
这样做效果更好,可以将$ sr中的对象作为数组获取,但仍然无法获得$ sr-> emailAddress。
print $subscribed_result->response->Results[0]->EmailAddress; // works?
foreach($subscribed_result->response->Results as $sr){
echo $sr->EmailAdress.""; // doesn't work?
echo "<pre>";
print_r($sr);
echo "</pre>";
}
吐出来;
stdClass Object
(
[EmailAddress] => 38ec95a@emailtests.com
[Name] => Daniel Crabbe
[Date] => 2011-07-11 13:00:00
[State] => Active
[CustomFields] => Array
(
)
)
答案 0 :(得分:4)
将其更改为:
foreach($subscribed_result->Results as $sr){
$res++;
echo $res.": ".$sr->EmailAdress;
}
请注意Results
而不是results
。 Results
是一个对象,因此$sr['EmailAddress']
无效。您只能访问此数组。 $sr->EmailAddress
将打印出您想要的内容。
为了说明这一点,您可以直接访问第一个电子邮件地址:
print $subscribed_result->Results[0]->EmailAddress;