2016-03-07 15 views
0

我想在Json中得到團隊的價值,我給了下面的代碼,但它返回NULL,任何想法?PHP:我如何得到這個JSON的值?

enter image description here

<?php 

$url = 'http://bristolrugby.matchdaylive.com/tools/ajax/cache.php?'; 
$url.= 'type=Fixture&format=json&TeamId=25&Source=sfms&module=StatsRugbyMDS&CompSeason=2015&project=bristol'; 


$response = json_decode(file_get_contents($url)); 
$fixture_array = $response; 

var_dump ($fixture_array->SoticFeed->Fixtures->Fixture[0]->Teams->Team); 

echo '<br/><hr>'; 

$fix = $fixture_array->SoticFeed->Fixtures; 

foreach($fix as $fix){ 

print $fix->Fixture->Teams->Team->TmnmDisplay . "<hr>"; 

} 
?> 
+0

你試過打印出'file_get_contents($ url)'的結果嗎?可能它永遠不會獲得JSON。也就是說,你的'foreach'循環使用了相同的變量,你應該使用'foreach(...-> Fixtures-> Fixture)'。 – h2ooooooo

回答

1

好像你被數據的結構混爲一談。您的最終循環是錯誤的,我認爲它應該看起來像這樣:

$fix = $fixture_array->SoticFeed->Fixtures->Fixture; 
foreach($fix as $fix_detail){ 
    foreach($fix_detail->Teams->Team as $team){ 
     print $team->TmnmDisplay . "<hr>"; 
    } 
} 

這是假設您想顯示所有團隊的名稱。如果這不是你想要的,請告訴我。

0

你好在陣列排列的JSON響應返回數組,這意味着你必須遍歷每個鍵,讓我解釋一下,你更

如果你

print_r($response["SoticFeed]") 

您將獲得陣列中的陣列,現在再次

print_r($response["SoticFeed"]["Fixtures"]) 

再次你會得到陣列,現在最後一部分

foreach($response["SoticFeed"]["Fixtures"]["Fixture"] as $key=>$value){ 

print_r($value) 


} 
+0

不要混淆,'json_decode'不會返回一個數組,除非你指定將第二個參數設置爲'true'。這種情況下的結果是'stdClass'對象。 –

+0

Yah對不起。 –