1

我无法解析我在 pastebin 上发布的数据集http://pastebin.com/TmZGw92j

就路由而言,我可以进入它,但由于某种原因不能再进一步了。这是我设置的变量:

$airTicketListResponse = $result->body->airTicketListResponse;
$routings = $airTicketListResponse->routings;
$trips = $routings->trips;
$segments = $trips->segments;

我可以 print_r($routings) 但是当我尝试 print_r($segments) 时,我什么也没得到。我想从路由和段中提取项目。

这是我当前的 foreach 循环,它在旅行时会出错。

foreach($routings as $item){
    echo '<span style="font-weight:bold;">Airline - '.$item->mainAirlineName.' Price - '.$item->adultBasePrice.'</span><br />'.$item->trips->segments->departureAirportCode.' '.$item->trips->segments->departureTime.'<br /><br />';

    }
4

2 回答 2

2

trips和元素是对象数组,而segments不是单个对象。

所以你需要引用数组元素[0]结构的哪一部分。

$trips = $routings[0]->trips;
$segments = $trips[0]->segments;

请注意,似乎有两次旅行,$trips[1]->segments如果您想要所有航段,您还需要。

更有可能的是,您希望使用foreach()循环来读取它们,而不是直接引用数组键。

像这样的东西?

foreach($routings as $routing) {
    $trips = $routing->trips;
    .... do something here with $trips? ....
    foreach($trips as $trip) {
         $segments = $trip->segments;
         .... do something here with $segments? ....
    }
}
于 2013-08-05T15:24:48.477 回答
0

你有几层嵌套在那里的数组。我认为您的代码需要更改为:

$trips = $routings[0]->trips;
$segments = $trips[0]->segments;
于 2013-08-05T15:26:23.497 回答