2016-05-02 12 views
1

私はHalo 5 APIを開発中です。そして、私はアリーナの各プレイヤーの武器の殺害を集めています。API(Laravel 5.2)から武器IDを取得

例えば、私のマグナムの合計キルを取得するには、これは私が何をすべきかです:

public function getPlayerArenaArray($playerArenaStats) { 
     $array = []; 
     $array['MagnumKills'] = $playerArenaStats->Results[0]->Result->ArenaStats->WeaponStats[0]->TotalKills; 

     return $array; 
} 

そして、これが出力されます。

Halo Output

これに伴う問題は、各選手です武器の注文は異なります。 ですから、例えば、このI出力は、私は(この場合、私の中で)そのプレイヤーのために使用された武器の配列を取得する場合:

$ex = $array['MagnumKills'] = $playerArenaStats->Results[0]->Result->ArenaStats->WeaponStats; 
dd($ex); 

そして、これが出力されます。他のプレーヤーのために

array:53 [▼ 
    0 => {#1576 ▼ 
    +"WeaponId": {#1577 ▼ 
     +"StockId": 4096745987.0 
     +"Attachments": [] 
    } 
    +"TotalShotsFired": 46355 
    +"TotalShotsLanded": 21245 
    +"TotalHeadshots": 2212 
    +"TotalKills": 2762 
    +"TotalDamageDealt": 393650.91875947 
    +"TotalPossessionTime": "P1DT1H36M25.5502S" 
    } 
    1 => {#1578 ▶} 
    2 => {#1580 ▶} 
    3 => {#1582 ▶} 
    4 => {#1584 ▶} 
    5 => {#1586 ▶} 
    6 => {#1588 ▶} 
    7 => {#1590 ▶} 
    8 => {#1592 ▶} 
    9 => {#1594 ▶} 
    10 => {#1596 ▶} 

...... and so on 

、配列[0]は異なる武器 が含まれていますそして、私は私の刃でこれを行う場合はそう:他のプレイヤーのために

<td style="width: 25%;"> 
      <img src="{{ json_decode($FlagnumImage) }}" class="img-responsive" style=" width: 50%; height: auto;"> <!-- weapon image --> 
     </td> 
     <td>{{ json_decode($Flagnum) }}</td>  <!-- weapon name --> 
     <td>{{ json_decode($MagnumKills) }}</td> <!-- weapon kills --> 

、$ MagnumKillsは異なる武器を意味しますが、私まだマグナムの下にあるでしょう。

私はあなたが理解してもらいたい、私はどういうわけか、武器の名前と画像を右側の武器の殺害にテーブルに付ける必要があります。

答えて

1

ラーベルコレクションヘルパークラスを使用してみてください。

collect($array)->pluck('WeaponId.StockId'); 
+0

ya、それは私にすべての武器IDの配列を与えました。私は今それらを割り当てようとします。 – David

+0

私の質問を編集しました – David

0

keyByコレクションのメソッドを試しましたか? あなたの関数は次のようになります:

public function getPlayerArenaArray($playerArenaStats) { 
    return collect($playerArenaStats->Results[0]->Result->ArenaStats->WeaponStats)->keyBy(
     function($stats) { 
      return $stats['WeaponId']['StockId']; 
     } 
    ); 
} 
+0

私の質問をもう一度チェックして編集しました – David

+0

この方法で私の関数から返されたデータを使用します( '$ stats'変数に割り当てられ、$ magnumId'はマグナムのStockIdです)。 $ magnumStats = $ stats [$ magnumId]; echo 'Magnum kill:'。$ magnumStats ['TotalKills']; '。 – starky

+0

上記の方法をkeyByで使用するとエラーが発生します:**タイプのオブジェクトを使用できませんstdClass配列** – David

関連する問題