2016-05-19 41 views
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.我在上面使用的另一種方法不會給我錯誤。

回答