配列をループして、プレイヤーがプレイした最後の10試合のすべてのチームスコアを取得するのに問題があります。私はこの配列をループしていますどのようにこれは、次のとおりです。スコアを得るためにJSON配列をループする - Laravel 5.2
$WarzoneLast10MatchesTeamScore = [];
foreach($warzoneLast10matches->Results->Teams as $idx => $stats){
$WarzoneLast10MatchesTeamScore[$idx]['Score'] = $stats->Score;
$WarzoneLast10MatchesTeamScore[$idx]['Id'] = $stats->Id;
}
これに伴う問題は、I'amは、最後の10試合を演じ取得しようとしているので、それは私にエラーを与えるので、結果は[結果、その後なければなりません0]、結果[1]などがあります。
+"Results": array:10 [▼
0 => {#17371 ▼
+"Links": {#13129 ▶}
+"Id": {#13130 ▶}
+"HopperId": "0e39ead4-383b-4452-bbd4-babb7becd82e"
+"MapId": "c89dae21-f206-11e4-a1c2-24be05e24f7e"
+"MapVariant": {#13121 ▶}
+"GameBaseVariantId": "42f97cca-2cb4-497a-a0fd-ceef1ba46bcc"
+"GameVariant": {#17372 ▶}
+"MatchDuration": "PT6M50.2813116S"
+"MatchCompletedDate": {#17367 ▶}
+"Teams": array:2 [▼
0 => {#17374 ▼
+"Id": 0
+"Score": 1
+"Rank": 1
}
1 => {#17375 ▼
+"Id": 1
+"Score": 0
+"Rank": 2
}
]
+"Players": array:1 [▶]
+"IsTeamGame": true
+"SeasonId": null
+"MatchCompletedDateFidelity": 1
}
1 => {#17378 ▶}
2 => {#17390 ▶}
3 => {#17402 ▶}
4 => {#17414 ▶}
5 => {#17426 ▶}
6 => {#17438 ▶}
7 => {#17450 ▶}
8 => {#17462 ▶}
9 => {#17474 ▶}
]
は、私は明らかに、各ゲームのための10個のループを作りたくない、ハードコード私の見解では各ゲームのスコア:ここに は、私が何を意味するかです。 Resultsオブジェクトをループして、Teams-> scoreとTeams-> Idオブジェクトを取得するにはどうすればよいですか?
FYI 私はこのようなコレクションを使用することができます知っている:いくつかのゲームでそこだけ1チームがあり、そしてそれが起これば、それはエラーと言って私をスローしますので
public function getWarzoneLast10Matches($warzoneLast10matches) {
// Collect al the results for this array
$results = collect($warzoneLast10matches->Results);
$array = $results->map(function($item, $key) {
return [
'Gamertag' => $item->Players[0]->Player->Gamertag,
'MapId' => $item->MapId,
'GameBaseVariantId' => $item->GameBaseVariantId,
'Score' => $item->Teams[0]->Score,
'Score2' => $item->Teams[1]->Score,
'Id' => $item->Teams[0]->Id,
'Id2' => $item->Teams[1]->Id,
];
});
return $array;
}
しかし、これは動作しませんが未定義のオフセット1、チームがいないので2。私がトップに使用しているもう1つの方法はエラーです。