2013-08-05 42 views
1

我無法解析,我在這裏引擎收錄http://pastebin.com/TmZGw92j解析JSON和顯示用PHP

貼我就踏進去的路線這組數據,但這時不能再往前走了一些原因。這裏是我的增值經銷商,我已經設置了:

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

我的print_r($路由),但是當我嘗試的print_r($段),我什麼也沒得到恢復。我想從路線和細分中拉出物品。

這裏是我目前的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 />'; 

    } 
+0

的JSON在'raw_body:Unirest \的HttpResponse:private'似乎無效,你就失去了'}'結尾。 – Halcyon

+0

是的,我錯過了粘貼...它是有效的。那麼我將如何進入細分市場? – DSmith

+0

首先,使用'var_dump'而不是'print_r'確保錯誤級別設置爲最大值,即'error_reporting(2047);'所以你會看到任何可能有幫助的通知。 –

回答

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? .... 
    } 
} 
+0

+1,因爲這比我的解釋更徹底。 –

+0

@Spudley那麼foreach循環看起來像訪問路由和段中的項目是什麼樣子? – DSmith

+0

@smitty - 我編輯了包含一些存根代碼的答案。你顯然需要做的不僅僅是這些,而且你完成的任務取決於你的程序在做什麼,所以我不能幫忙。 – Spudley

0

你有幾層嵌套在那裏的數組。我覺得你的代碼需要改成這樣:

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