我正在尝试从外部API获取一些数据。从JSON数据中,我想检索一些在图像中标记的数据。

我可以用下面的代码访问“团队”的数据-
foreach( $data->data as $info ) {
echo '<li class="team-1">'. $info->teams[0].'</li>';
echo '<li class="team-2">'. $info->teams[1].'</li>';
};但是当我试图从对象数组中更深入地访问数据时,它不起作用&给了我错误-
foreach( $info->sites as $site) {
foreach( $site->odds as $odd) {
echo $odd->h2h[0];
}
}所以我的问题是,通过循环数据来访问这些数组的最佳方法是什么。我在Wordpress中使用了这段代码,但我认为它将与PHP相同。
发布于 2018-10-04 08:21:08
看起来odds是一个对象而不是数组。
如果h2h将始终是唯一的属性,那么您可以尝试:
foreach( $info->sites as $site) {
echo $site->odds->h2h[0];
}或者,如果h2h不总是唯一的属性,那么您可能希望尝试将其转换为数组:
foreach( $info->sites as $site) {
foreach( (array)$site->odds as $odd) {
echo $odd[0];
}
}发布于 2018-10-04 08:27:24
您应该直接从odds访问h2h,因为它不是一个数组,而是一个对象
foreach( $info->sites as $site) {
echo $site->odds->h2h[0];
}发布于 2018-10-04 16:41:10
您从外部应用程序接口获得此json,并使用json_decode对其进行转换,对吗?如果是这样的话,只需使用第二个参数"$assoc“并将其设置为true,就不会得到一个对象,而是一个可以像这样使用的关联数组:
$info = json_decode($api_answer,true);
if(isset($info['sites']['odds'])){
foreach($info['sites']['odds'] as $odd){
echo $odd['h2h'][0]
}
}https://stackoverflow.com/questions/52637084
复制相似问题