我试图在Json中获得团队的价值,我试过下面的代码,但它返回NULL,有什么想法吗?
<?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 :(得分:1)
您似乎对数据结构感到困惑。你的最后一个循环是错误的,我认为它应该是这样的:
$fix = $fixture_array->SoticFeed->Fixtures->Fixture;
foreach($fix as $fix_detail){
foreach($fix_detail->Teams->Team as $team){
print $team->TmnmDisplay . "<hr>";
}
}
这假设您要显示所有团队的名称。如果这不是您的意图,请告诉我。
答案 1 :(得分:0)
你好你的Json响应在数组中的数组中返回数组,这意味着你必须遍历每个键,让我向你解释更多
如果你
print_r($response["SoticFeed]")
您将获得Array in Array,现在再次
print_r($response["SoticFeed"]["Fixtures"])
再次你会得到数组,现在是最后一部分
foreach($response["SoticFeed"]["Fixtures"]["Fixture"] as $key=>$value){
print_r($value)
}