【问题标题】:Json Decode,Access, show and separate names with ID, every 9 namesJson解码,访问,显示并用ID分隔名称,每9个名称
【发布时间】:2012-12-03 01:55:34
【问题描述】:

你好 :) 我给你下面的 Json 解码。 http://pastebin.com/XqhTMWCS

它展示了我最近的 10 场比赛。每场比赛我需要得到我的 4 个队友,以及我的 5 个敌人。(名称)当某人是队友时,他的“teamId”为 100,当某人为敌人时,“teamId”为 200 >。我需要分开并展示它们。

喜欢:你在玩薇恩。你的团队是:

sirjack1101 玩英雄 ID 89

blablaa 播放 ID 22

blablaaa 播放 ID 23

blablaaaa 播放 ID 24

敌方队伍是:

blablsaa 播放 ID 31

bsadaaas 播放 ID 12

basdasdb 播放 ID 53

blablsad 播放 ID 67

blablsav 播放 ID 121

我只能找到第一个用户名:

$recent = "My json" ;
$rec    = file_get_contents($recent);
$recdat = json_decode($rec, true); 
$fellow = $recdat[gameStatistics][0][fellowPlayers][0][summonerName];
echo $fellow;

而且我只能使用相同的代码获得我的第一个冠军名称......我需要你的帮助! :)

提前致谢!

【问题讨论】:

  • 你能为 JSON 本身提供一个 pastebin 吗?会更有帮助。

标签: php arrays json decode


【解决方案1】:

听起来您只需要一个 foreach 循环来迭代所有玩家。

<?php
define('TEAMMATE_ID', 100);
define('ENEMY_ID', 200);

$teammates = $enemies = array();
foreach ($data['gameStatistics'][0]['fellowPlayers'] as $player) {
  if ($player['teamId'] == TEAMMATE_ID) {
    $teammates[] = $player['summonerName'] .' playing ID '. $player['championId'];
  }
  else if ($player['teamId'] == ENEMY_ID) {
    $enemies[] = $player['summonerName'] .' playing ID '. $player['championId'];
  }
}

// List of teammates.
print "Teammates:\n";
print implode("\n", array_slice($teammates, 0, 4));

// List of enemies.
print "Enemies:\n";
print implode("\n", array_slice($enemies, 0, 5));
?>

希望我不会离谱……

【讨论】:

  • 请注意,如果没有游戏将有超过四个队友和五个敌人,您可以取消对 array_slice() 的调用 :-)
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 2021-04-06
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多