2016-08-20 11 views
-2

私はJSON配列の応答をフィルタリングしようとしています。結果のほんの一部が必要です。ループを使用してデータfron JSON配列を抽出

私はプレーヤーdisplayNameを取得する必要があります。

ここは最初のプレイヤーの休息です。試合ごとに最大12人のプレイヤーが参加できます。

私は私が必要とするデータを得ることができる唯一の方法はHERESに元の応答を

$player1 = $json11['Response']['data']['entries']['0']['player']['destinyUserInfo']['displayName']; 
$player2 = $json11['Response']['data']['entries']['1']['player']['destinyUserInfo']['displayName']; 
etc... etc... 

を行うことであるループを通ると名前。本では

[displayName] => jonhofun 

を抽出することができます何かを必要とします

Array 
(
[Response] => Array 
    (
     [data] => Array 
      (
       [period] => 2016-08-20T10:16:46Z 
       [activityDetails] => Array 
        (
         [referenceId] => 3156370656 
         [instanceId] => 5370359303 
         [mode] => 12 
         [activityTypeHashOverride] => 3614615911 
        ) 

       [entries] => Array 
        (
         [0] => Array 
          (
           [standing] => 0 
           [score] => Array 
            (
             [basic] => Array 
              (
               [value] => 2190 
               [displayValue] => 2,190 
              ) 

            ) 

           [player] => Array 
            (
             [destinyUserInfo] => Array 
              (
               [iconPath] => /common/destiny_content/icons/d0d3cd4c26aa1a931d46c4bf720856ba.jpg 
               [membershipType] => 2 
               [membershipId] => 4611686018454971653 
               [displayName] => jonhofun 
              ) 

             [characterClass] => Warlock 
             [characterLevel] => 40 
             [lightLevel] => 322 
            ) 
          ) 
        ) 
      ) 
    ) 
) 

助けてください。

// totalPlayers will need to be changed to the total number of entries you have 
for ($x = 1; $x < $totalPlayers; $x++) { 
    // You will need to do something with the nextPlayer here before the next iteration of the loop 
    $nextPlayer = $json11['Response']['data']['entries'][$x]['player']['destinyUserInfo']['displayName']; 
} 

注意返されたデータから、ハードコードされたプレイヤーの識別子が交換されていること:

+0

forループを使用して完了! –

+0

私はそれを行う方法は分かっていません:(それは問題です..すべてはオンラインで$ key => $ valueですが、どうしたらいいか教えてください) – Ashley

答えて

2

「エントリ」の下にあるサブアレイをループする必要があります。

foreach ($json11['Response']['data']['entries'] as $entries) { 
    $player_names[] = $entries['player']['destinyUserInfo']['displayname']; 
} 

echo "<pre>"; 
print_r($player_names); // Check all player names 
+0

ありがとう、これはありがとう、これは私の問題を解決しました。今すぐリースしてください。foreachループの書き方については、今後お知らせします。 – Ashley

+0

歓迎です。 –

-1

これは簡単にforループで達成可能である必要があり、あなたの進め方のアイデアを与える必要があり、次の例をご確認くださいforループのカウンタ$xを使用します。

+0

OPは0で始まることに注意してください。 –

+0

キーがわからないときにテンキーと一緒に使う貧弱な練習。最大12になる可能性があるので、5または6の場合、注意と警告がたくさん表示されます。 –

+0

'foreach'ループ – BeetleJuice

関連する問題