使用Amadeus Flight Offer API区分去程与返程航班的问题咨询
问题解答
关于去返程标识的说明
Amadeus Flight Offer API 没有单独的字段专门标记去程/返程航班,但是往返行程的返回结果中,itineraries数组的顺序严格和你请求参数里originDestinationList的顺序一一对应:
- 下标为
0的元素固定为去程行程 - 下标为
1的元素固定为返程行程
你给出的返回样例也符合这个规则,第一组行程就是下标0的去程,第二组是下标1的返程。
代码调整方案
你不需要遍历所有itineraries元素,只需要取下标为0的去程行程遍历即可,调整后的代码如下:
$response_body = callAmadeusAPI($endpoint,$travel_data,$access_token); foreach($response_body->data as $offer) { // 仅取下标为0的去程行程,避免输出返程 $departureItinerary = $offer->itineraries[0]; echo '去程总时长:' . $departureItinerary->duration . '<br>'; // 遍历去程的所有航段 foreach($departureItinerary->segments as $segment ) { // 这里可以自行排版输出航段信息,比如起降机场、时间、航班号等 echo '航班:' . $segment->carrierCode . $segment->number . ' '; echo $segment->departure->iataCode . ' ' . $segment->departure->at . ' → '; echo $segment->arrival->iataCode . ' ' . $segment->arrival->at . '<br>'; } }
额外注意事项
- 如果你的请求支持单程/往返动态切换,可以先判断
itineraries数组的长度,避免下标不存在报错 - 如果你使用多目的地行程查询,按照请求时传入的
originDestinationList顺序取对应下标的itineraries元素即可
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

