Php 循环JSON数组并在表-Laravel 5.2中显示结果
这个问题可能已经被问过很多次了,但我找不到答案 我调用的API如下所示:Php 循环JSON数组并在表-Laravel 5.2中显示结果,php,json,laravel,laravel-5.2,Php,Json,Laravel,Laravel 5.2,这个问题可能已经被问过很多次了,但我找不到答案 我调用的API如下所示: public function getLeaderBoardArray($leaderBoardStats) { $array = []; $ex = $leaderBoardStats; dd($ex); return $array; } 这是我(DD)时得到的结果(Die Dump it): 如何循环通过此阵列并显示玩家代号 这就是我现在正在
public function getLeaderBoardArray($leaderBoardStats) {
$array = [];
$ex = $leaderBoardStats;
dd($ex);
return $array;
}
这是我(DD)时得到的结果(Die Dump it):
如何循环通过此阵列并显示玩家代号
这就是我现在正在做的:
public function getLeaderBoardArray($leaderBoardStats) {
$array = [];
$array['Gamertag_1'] = $leaderBoardStats->Results[0]->Player->Gamertag;
$array['Csr_1'] = $leaderBoardStats->Results[0]->Score->Csr;
$array['Gamertag_2'] = $leaderBoardStats->Results[1]->Player->Gamertag;
$array['Csr_2'] = $leaderBoardStats->Results[1]->Score->Csr;
// and so on til 10....
return $array;
}
正如你所看到的,这将是一个痛苦的做,直到100为每个领导委员会
有没有一种更简单的方法,比如为每个循环做一个循环?你昨天问了一个非常类似的问题,今天我将给你一个非常类似的答案 使用
map()
$results = collect($leaderBoardStats->Results);
$gamers = $results->map(function($item, $key)
{
return [
'gamertag' => $item->Player->Gamertag,
'csr' => $item->Score->Csr,
]
});
这将给你一个数组,看起来像
[
['gamertag' => "name", 'csr' => 11111],
['gamertag' => "name", 'csr' => 11111],
['gamertag' => "name", 'csr' => 11111],
['gamertag' => "name", 'csr' => 11111],
];
然后,在您的视图中,您可以这样做来构建一个表
@foreach ($gamers->all() as $gamer)
<tr>
<td>{{ $gamer['gamertag'] }}</td>
<td>{{ $gamer['csr'] }}</td>
</tr>
@endforeach
@foreach($gamers->all()作为$gamer)
{{$gamer['gamertag']}
{{$gamer['csr']}
@endforeach
这一切都需要。Laravel系列可能是整个框架中最强大的方面之一,并且非常健壮且构建良好。如果您有一个与数组相关的问题,文档可能会有一个与集合相关的答案。您可以编写一个简单的循环来迭代结果。例如,我喜欢使用foreach循环
$array = [];
foreach ($leaderBoardStats->Results as $stat) {
array[] = [
'gamer_tag' => $stat->Player->Gamertag,
'csr' => $stat->Score->Csr
];
}
return $array;
一种更好更高级的方法是映射它,这样就不必创建任何额外的数组
return array_map(function ($stat) {
return [
'gamer_tag' => $stat->Player->Gamertag,
'csr' => $stat->Score->Csr
];
}, $leaderBoardStats->Results);
return array_map(function ($stat) {
return [
'gamer_tag' => $stat->Player->Gamertag,
'csr' => $stat->Score->Csr
];
}, $leaderBoardStats->Results);