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

如何使用PHP读取JSON数据中的optionMarkets嵌套数组内容

PHP读取赛事JSON嵌套optionMarkets字段实现方案

常见错误排查

  • 调用json_decode()时未传第二个参数为true,返回结果为对象类型,使用数组语法访问会抛出错误
  • 嵌套层级判断缺失,部分optionMarkets下的子字段可能存在空值,直接遍历会报错
  • JSON字符串存在转义字符未处理,导致解析失败

完整实现代码

步骤1:解析JSON为关联数组

// 替换为你的赛事JSON字符串
$eventJson = '你的赛事JSON内容';
// 第二个参数设为true,强制返回关联数组
$eventData = json_decode($eventJson, true);
// 校验JSON解析结果
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解析错误:' . json_last_error_msg());
}

步骤2:读取基础字段

$homeTeam = $eventData['HomeTeam'] ?? '未知主队';
$awayTeam = $eventData['AwayTeam'] ?? '未知客队';
$matchDate = $eventData['Date'] ?? '未知赛事日期';

步骤3:遍历输出optionMarkets嵌套数据

// 先判断optionMarkets字段存在且为可遍历的数组
if (isset($eventData['optionMarkets']) && is_array($eventData['optionMarkets'])) {
    foreach ($eventData['optionMarkets'] as $marketItem) {
        // 输出盘口基础信息,字段名可根据你的实际JSON结构调整
        echo '盘口类型:' . ($marketItem['marketName'] ?? '未知盘口') . '<br>';
        // 遍历盘口下的投注选项
        if (isset($marketItem['options']) && is_array($marketItem['options'])) {
            foreach ($marketItem['options'] as $optionItem) {
                echo '投注选项:' . ($optionItem['optionName'] ?? '未知选项') . ',对应赔率:' . ($optionItem['odds'] ?? '未知赔率') . '<br>';
            }
        }
        echo '<hr>';
    }
}

注意事项

  • 所有嵌套字段访问都用??运算符设置默认值,避免字段不存在时抛出PHP提示
  • 遍历前必须先判断对应字段存在且为数组类型,避免空值、非数组值遍时报错
  • 如果你的JSON返回的是对象结构,把数组访问语法$a['b']替换为对象访问语法$a->b即可

内容的提问来源于stack exchange,提问作者Ayo Owoade

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:30:03