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

如何使用PHP和Curl遍历TransportAPI返回的JSON数据?

解决Transport API返回JSON结果的循环遍历问题

嘿,我来帮你搞定这个循环遍历Transport API返回结果的问题!先把你的代码补全优化,再教你怎么遍历所有结果:

首先,先把你的curl请求代码补完整,确保能正确获取并解码JSON数据:

$url = "https://transportapi.com/v3/uk/train/station/eus/2018-04-15/13:38/timetable.json?app_id=*****&app_key=*****&destination=LIV&train_status=passenger";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 关键配置:让curl返回结果而非直接输出
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 若遇SSL验证问题可临时添加,生产环境建议开启验证
$response = curl_exec($curl);
curl_close($curl);

// 将JSON响应解码为PHP关联数组
$timetableData = json_decode($response, true);

接下来,你需要先明确API返回的JSON结构。通常Transport API的时刻表结果中,出发班次会嵌套在departures字段下。假设我们要遍历所有符合条件的班次,可以这样做:

// 先检查目标数组是否存在,避免报错
if (isset($timetableData['departures']['all'])) {
    // 用foreach循环遍历所有班次数据
    foreach ($timetableData['departures']['all'] as $train) {
        // 打印每个班次的核心信息,你可以根据需求调整字段
        echo "车次编号: " . $train['train_uid'] . "\n";
        echo "计划出发时间: " . $train['departure_time'] . "\n";
        echo "目的地: " . $train['destination_name'] . "\n";
        echo "-------------------------\n";
    }
} else {
    echo "未找到可用的班次数据";
}

实用小技巧:

  • 你可以先执行var_dump($timetableData)打印整个解码后的数组,直观查看API返回的结构,确认要遍历的数组键名(比如可能是departures['national_rail']而非all,取决于API返回格式)
  • 如果需要打印更详细的字段,直接在循环中调用对应的键名即可,无需打印整个条目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:35:33