0
我有問題循環遍歷一個數組,以獲得每個球隊在最後10場比賽中得分。這是我如何通過循環數組:通過JSON數組循環獲得分數 - Laravel 5.2
$WarzoneLast10MatchesTeamScore = [];
foreach($warzoneLast10matches->Results->Teams as $idx => $stats){
$WarzoneLast10MatchesTeamScore[$idx]['Score'] = $stats->Score;
$WarzoneLast10MatchesTeamScore[$idx]['Id'] = $stats->Id;
}
的問題,這是它會給我一個錯誤,因爲我'試圖讓過去的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對象?
僅供參考 我知道我可以使用的集合是這樣的:
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隊,如果出現這種情況,那麼就會把我一個錯誤說未定義偏移1,因爲沒有球隊2.我在上面使用的另一種方法不會給我錯誤。