【发布时间】:2017-07-09 21:52:26
【问题描述】:
我正在使用 Veezi API,这是他们的一些 JSON 输出:
[{
"Id":"ST00000032",
"Title":"Avatar",
"People":[
{
"Id":"0000000032",
"FirstName":"Sam",
"LastName":"Worthington",
"Role":"Actor"
},
{
"Id":"HO00000176",
"FirstName":"James",
"LastName":"Cameron",
"Role":"Director"
},
{
"Id":"HO00000578",
"FirstName":"Sigourney",
"LastName":"Weaver",
"Role":"Actor"
}
],
"AudioLanguage":"English"
}]
到目前为止,我正在 PHP 中构建一个字符串($theArray 是我的 JSON 解码数组,这是我拥有的代码:
$allShows .= '<p class="details">With: ';
foreach($theArray['People'] as $key => $value){
$allShows .= $value->FirstName.' '.$value->LastName.' ('.$value->Role.') <br>';
}
$allShows .= '</p>';
我没有得到任何值,只有“角色”周围的嵌入式括号。正确数量的括号被返回,所以我很确定我循环正确。谁能发现我的问题?
【问题讨论】:
-
whats
print_r($theArray)看起来像,看起来你有一个对象数组,所以 json_decode 会给你一个数组数组,你需要两个 foreach 或者你只想要第一个foreach($theArray[0]['People'] as ...)。 -
如果您已将 JSON 字符串解码为数组而不是对象,则所有嵌套的 JSON 对象也将是数组。在这种情况下,您应该使用
$value['FirstName']而不是$value->FirstName。
标签: php arrays json foreach elements