Отображать массив JSON в виде списка в php

#php #json

#php #json

Вопрос:

Я пытаюсь отобразить массив JSON в php

JSON:

 "members":[  
{  
  "username":"Abstract",
  "status":"online",
  "bot":true,
  "nick":"ViralBot ud83dude0b",
  "avatar_url":"https://cdn.discordapp.com/avatars/133718676741292033/59b492151d2c352f3ac5e249e4f04a82.jpg",
  "avatar":"59b492151d2c352f3ac5e249e4f04a82",
  "discriminator":"0612",
  "id":"133718676741292033"
},
{  
  "username":"Aethex",
  "status":"online",
  "bot":true,
  "game":{  
     "name":"aethex.xyz | -help"
  },
  "avatar_url":"https://cdn.discordapp.com/avatars/150300454708838401/bca569aaf0e1093ec8103e7bd3bedfb7.jpg",
  "avatar":"bca569aaf0e1093ec8103e7bd3bedfb7",
  "discriminator":"0394",
  "id":"150300454708838401"
},
{  
  "username":"AIRHORN SOLUTIONS",
  "status":"online",
  "bot":true,
  "nick":"MLG AIRHORNZ!",
  "game":{  
     "name":"airhornbot.com"
  },
  "avatar_url":"https://cdn.discordapp.com/avatars/159800228088774656/96be9927ca947a75021db568485612fc.jpg",
  "avatar":"96be9927ca947a75021db568485612fc",
  "discriminator":"6723",
  "id":"159800228088774656"
},
{  
  "username":"BuddyGang",
  "status":"online",
  "game":{  
     "name":"Custom Widgets API"
  },
  "avatar_url":"https://cdn.discordapp.com/avatars/97172171259904000/089e84734ea5ca86d20292abcca0982f.jpg",
  "avatar":"089e84734ea5ca86d20292abcca0982f",
  "discriminator":"1704",
  "id":"97172171259904000"
},
{  
  "username":"danclay",
  "status":"dnd",
  "nick":"danclay ud83dude09",
  "avatar_url":"https://cdn.discordapp.com/avatars/97147476531757056/fa460980203d7838c8481c93c0361f6d.jpg",
  "avatar":"fa460980203d7838c8481c93c0361f6d",
  "discriminator":"2051",
  "id":"97147476531757056"
},
{  
  "username":"dragongod100",
  "status":"idle",
  "avatar_url":"https://cdn.discordapp.com/avatars/96716994136514560/5393bc18ab9d7ddf19b6fe54575d93a7.jpg",
  "avatar":"5393bc18ab9d7ddf19b6fe54575d93a7",
  "discriminator":"5291",
  "id":"96716994136514560"
},
{  
  "username":"Hax0nWax0ff",
  "status":"idle",
  "avatar_url":"https://cdn.discordapp.com/avatars/125738028793593856/ccf68e818fa44e342f60030a89a0fd53.jpg",
  "avatar":"ccf68e818fa44e342f60030a89a0fd53",
  "discriminator":"7691",
  "id":"125738028793593856"
},
{  
  "username":"iiPsionic",
  "status":"idle",
  "avatar_url":"https://cdn.discordapp.com/avatars/142014347038818304/ba4bba83436f227933004694b4c184f2.jpg",
  "avatar":"ba4bba83436f227933004694b4c184f2",
  "discriminator":"6034",
  "id":"142014347038818304"
},
{  
  "username":"RH1-N0",
  "status":"online",
  "bot":true,
  "nick":"RHINO ATTACK!",
  "avatar_url":"https://cdn.discordapp.com/avatars/135288293548883969/fe0070998d6c9378edf8243e3267f950.jpg",
  "avatar":"fe0070998d6c9378edf8243e3267f950",
  "discriminator":"6993",
  "id":"135288293548883969"
},
{  
  "username":"WildBot",
  "status":"online",
  "bot":true,
  "nick":"Cra-Cra Bot ud83dude31",
  "avatar_url":"https://cdn.discordapp.com/avatars/110462073074388992/f8143e56615e2107d9cc1ef35c0dfa9e.jpg",
  "avatar":"f8143e56615e2107d9cc1ef35c0dfa9e",
  "discriminator":"3942",
  "id":"110462073074388992"
}
]
  

Я хочу иметь возможность отображать его в числовом порядке переменной «position», с аватаром, расположенным рядом с именем пользователя, а затем текстом игры.

HTML-макет:

  <img src="AVATAR_URL" width="50%"> USERNAME - <small>GAME</small><br>
  

Ответ №1:

попробуй этот код, братан, надеюсь, это поможет

 $arr=json_decode($data,true);
// to prevent error undefined index
if(isset($arr['members'])) {
  foreach($arr['members'] as $val){
    $gmtxt=isset($val['game']['name'])?$val['game']['name']:"";
    echo '<img src="'.$val['avatar_url'].'" width="50%"> '.$val['username'].' -  <small>'.$gmtxt.'</small><br>';
  }
}
  

Ответ №2:

Здесь код:-

 $data='{
"members": [
{
  "username": "Abstract",
  "status": "online",
  "bot": true,
  "nick": "ViralBot 😋",
  "avatar_url": "https://cdn.discordapp.com/avatars/133718676741292033/59b492151d2c352f3ac5e249e4f04a82.jpg",
  "avatar": "59b492151d2c352f3ac5e249e4f04a82",
  "discriminator": "0612",
  "id": "133718676741292033"
},
{
  "username": "Aethex",
  "status": "online",
  "bot": true,
  "game": {
    "name": "aethex.xyz | -help"
  },
  "avatar_url": "https://cdn.discordapp.com/avatars/150300454708838401/bca569aaf0e1093ec8103e7bd3bedfb7.jpg",
  "avatar": "bca569aaf0e1093ec8103e7bd3bedfb7",
  "discriminator": "0394",
  "id": "150300454708838401"
},
{
  "username": "AIRHORN SOLUTIONS",
  "status": "online",
  "bot": true,
  "nick": "MLG AIRHORNZ!",
  "game": {
    "name": "airhornbot.com"
  },
  "avatar_url": "https://cdn.discordapp.com/avatars/159800228088774656/96be9927ca947a75021db568485612fc.jpg",
  "avatar": "96be9927ca947a75021db568485612fc",
  "discriminator": "6723",
  "id": "159800228088774656"
},
{
  "username": "BuddyGang",
  "status": "online",
  "game": {
    "name": "Custom Widgets API"
  },
  "avatar_url": "https://cdn.discordapp.com/avatars/97172171259904000/089e84734ea5ca86d20292abcca0982f.jpg",
  "avatar": "089e84734ea5ca86d20292abcca0982f",
  "discriminator": "1704",
  "id": "97172171259904000"
},
{
  "username": "danclay",
  "status": "dnd",
  "nick": "danclay 😉",
  "avatar_url": "https://cdn.discordapp.com/avatars/97147476531757056/fa460980203d7838c8481c93c0361f6d.jpg",
  "avatar": "fa460980203d7838c8481c93c0361f6d",
  "discriminator": "2051",
  "id": "97147476531757056"
},
{
  "username": "dragongod100",
  "status": "idle",
  "avatar_url": "https://cdn.discordapp.com/avatars/96716994136514560/5393bc18ab9d7ddf19b6fe54575d93a7.jpg",
  "avatar": "5393bc18ab9d7ddf19b6fe54575d93a7",
  "discriminator": "5291",
  "id": "96716994136514560"
},
{
  "username": "Hax0nWax0ff",
  "status": "idle",
  "avatar_url": "https://cdn.discordapp.com/avatars/125738028793593856/ccf68e818fa44e342f60030a89a0fd53.jpg",
  "avatar": "ccf68e818fa44e342f60030a89a0fd53",
  "discriminator": "7691",
  "id": "125738028793593856"
},
{
  "username": "iiPsionic",
  "status": "idle",
  "avatar_url": "https://cdn.discordapp.com/avatars/142014347038818304/ba4bba83436f227933004694b4c184f2.jpg",
  "avatar": "ba4bba83436f227933004694b4c184f2",
  "discriminator": "6034",
  "id": "142014347038818304"
},
{
  "username": "RH1-N0",
  "status": "online",
  "bot": true,
  "nick": "RHINO ATTACK!",
  "avatar_url": "https://cdn.discordapp.com/avatars/135288293548883969/fe0070998d6c9378edf8243e3267f950.jpg",
  "avatar": "fe0070998d6c9378edf8243e3267f950",
  "discriminator": "6993",
  "id": "135288293548883969"
},
{
  "username": "WildBot",
  "status": "online",
  "bot": true,
  "nick": "Cra-Cra Bot 😱",
  "avatar_url": "https://cdn.discordapp.com/avatars/110462073074388992/f8143e56615e2107d9cc1ef35c0dfa9e.jpg",
  "avatar": "f8143e56615e2107d9cc1ef35c0dfa9e",
  "discriminator": "3942",
  "id": "110462073074388992"
   }
  ]
  }';

$arr=json_decode($data,true);
foreach($arr['members'] as $val){
$gmtxt=isset($val['game']['name'])?$val['game']['name']:"";
echo '<img src="'.$val['avatar_url'].'" width="50%"> '.$val['username'].' -  <small>'.$gmtxt.'</small><br>';
}