Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环JSON数组并在表-Laravel 5.2中显示结果_Php_Json_Laravel_Laravel 5.2 - Fatal编程技术网

Php 循环JSON数组并在表-Laravel 5.2中显示结果

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): 如何循环通过此阵列并显示玩家代号 这就是我现在正在

这个问题可能已经被问过很多次了,但我找不到答案

我调用的API如下所示:

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);