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

PHP如何组合两个API调用 循环获取赛事及对应预测数据

遍历赛事数组配对请求预测接口实现方案

核心逻辑是在已有的foreach赛事遍历循环内,直接获取当前循环的赛事ID发起预测接口请求,解析结果后和当前赛事数据绑定输出,保证顺序一一对应。

实现步骤

  • 从当前遍历的赛事单元中提取fixtureID,替换预测接口请求路径中的{fixtureID}占位符
  • 复用cURL句柄发起请求,避免重复初始化句柄带来的性能损耗
  • 对预测接口返回的JSON做格式校验,避免接口异常导致整体脚本中断
  • 提取predictions节点下需要的获胜方ID、获胜方名称、预测备注字段,和当前赛事数据按顺序配对输出

完整可参考代码

<?php
// --------------- 以下为你已实现的前置逻辑,无需修改 ---------------
// 1. 赛事接口cURL请求、json_decode解析得到$fixtures数组的逻辑保留
// ----------------------------------------------------------------

// 循环外初始化cURL句柄,复用提升性能
$predictionCh = curl_init();
curl_setopt($predictionCh, CURLOPT_RETURNTRANSFER, true);
curl_setopt($predictionCh, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($predictionCh, CURLOPT_HTTPHEADER, [
    // 替换为你自己预测接口需要的请求头,比如Authorization鉴权头
    'Accept: application/json'
]);

// 你原有遍历$fixtures的循环逻辑
foreach ($fixtures as $fx) {
    $currentFixtureId = $fx['fixture']['id'];
    
    // --------------- 你原有输出赛事信息的逻辑保留 ---------------
    // 例:echo "赛事:".$fx['teams']['home']['name']." vs ".$fx['teams']['away']['name'].PHP_EOL;
    // ----------------------------------------------------------

    // ------------------- 补全的预测请求逻辑 -------------------
    // 拼接当前赛事对应的预测接口地址,替换占位符
    $apiUrl = "你的预测接口端点路径/{$currentFixtureId}";
    curl_setopt($predictionCh, CURLOPT_URL, $apiUrl);

    // 发起请求
    $response = curl_exec($predictionCh);
    // 异常捕获
    if (curl_errno($predictionCh)) {
        echo "赛事ID[{$currentFixtureId}]预测请求失败:".curl_error($predictionCh).PHP_EOL;
        continue;
    }
    // 解析响应为关联数组,和赛事接口解析参数保持一致
    $prediction = json_decode($response, true);
    // 结构校验
    if (!isset($prediction['predictions']['winner'], $prediction['predictions']['comment'])) {
        echo "赛事ID[{$currentFixtureId}]预测返回格式异常".PHP_EOL;
        continue;
    }

    // 提取目标字段
    $winnerId = $prediction['predictions']['winner']['id'];
    $winnerName = $prediction['predictions']['winner']['name'];
    $comment = $prediction['predictions']['comment'];

    // 配对输出预测结果,和前面的赛事信息一一对应
    echo "=== 对应赛事预测结果 ===".PHP_EOL;
    echo "预测获胜方ID:{$winnerId}".PHP_EOL;
    echo "预测获胜方名称:{$winnerName}".PHP_EOL;
    echo "预测备注:{$comment}".PHP_EOL;
    echo PHP_EOL;
}

// 循环结束关闭cURL句柄
curl_close($predictionCh);
?>

注意事项:如果你的预测接口支持批量传入多个fixtureID返回对应预测结果,优先使用批量接口,相比循环单次请求可以大幅降低接口请求总耗时,避免触发接口频率限制。

内容的提问来源于stack exchange,提问作者Daniel Omara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:12:35