如何在PHP中打印JSON单独值?获取角球数据遇阻求助
解决PHP解析JSON获取角球数据无输出的问题
看起来你遇到的问题是JSON数据的路径访问错误,导致无法获取到角球数据。咱们一步步来解决:
问题根源
你的JSON里,角球数据corners并不是直接在results的子对象下,而是嵌套在stats字段里的数组。之前的代码直接调用$result['corners'],这个键根本不存在,所以自然没有输出。
看一下你的JSON结构层级:
results -> [0] -> stats -> corners: ["8", "2"]
其中corners数组的第一个元素是主队角球数,第二个是客队的。
修正后的代码
这里给你写一个更健壮的版本,包含错误检查,避免出现警告:
<?php // 假设$data是你的原始JSON字符串 $obj = json_decode($data, true); // 先确认JSON解析成功且存在results数组 if ($obj && isset($obj['results']) && is_array($obj['results'])) { foreach($obj['results'] as $result){ // 检查stats和corners是否存在且是有效数组 if (isset($result['stats']['corners']) && is_array($result['stats']['corners']) && count($result['stats']['corners']) >= 2) { $home_total_corners = $result['stats']['corners'][0]; $away_total_corners = $result['stats']['corners'][1]; // 输出你需要的两个结果 echo "主队角球总数:{$home_total_corners}<br>"; echo "客队角球总数:{$away_total_corners}<br>"; } else { echo "当前比赛没有可用的角球数据<br>"; } } } else { echo "JSON解析失败,或者没有找到比赛结果数据"; } ?>
额外说明
- 加上
isset()和类型检查是为了防止当JSON结构变化或者某些字段缺失时,代码出现Undefined index或者Invalid argument supplied for foreach()的警告。 - 如果你的JSON里还有其他比赛条目,这个循环会遍历所有结果并输出每一场的角球数据。
内容的提问来源于stack exchange,提问作者Jay Bro
相关产品推荐
相关产品推荐

