2016-01-21 100 views
-1
$str = file_get_contents('http://uapi.alidays.it/service/2.0.0/rs/alidays/applications/fluidtravel/public/baskets/5660609ee4b0ab55863d6c42/contents/selected'); 
$json =json_decode($str,true); 
echo '<pre>' . print_r($json,true) . '</pre>'; 
foreach($json['data'] as $item['value']['baskettile']) { 
    echo $item['value']['baskettile']['type']; 

    echo '<br>'; 
} 

我試圖訪問這樣的數據,但它說警告:()提供的foreach無效參數讀取JSON數據

+0

'PHP警告:非法字符串偏移'類型'在 - 線6' – Quentin

+0

是的我知道我當我試過我知道了它你知道我爲什麼得到那@Quentin –

+0

你明白了嗎?那你爲什麼不在你的問題中提到這個? – Quentin

回答

1

baskettile值是與像typestatus屬性的對象。它不是數組。用foreach(... in ...)迭代它是沒有意義的。

只需直接訪問這些值。

$json['data']['0']['value']['baskettile']['type'] 
+0

你是救星@Quentin –

+0

但我想迭代循環@Quentin –

+0

@SaidaRao - 你想要什麼循環結束?你試圖循環的東西不是一個數組。 – Quentin

0

您需要調試您的代碼。機會是$item是不是你認爲它是。 最快的方法是在你的foreach中做一個var_dump($item)。從那裏你可以看到變量既不是數組也不是鍵不存在。

+0

foreach($ json [ 'data'] as $ item){echo「experience id =====」。$ item ['value'] ['baskettile'] ['type']。「
」; }這個人爲我工作,我希望這會幫助其他人 –