2016-05-19 42 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.我在上面使用的另一种方法不会给我错误。

回答