You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:23:14