Как отобразить информацию о двойном массиве JSON (php) - PullRequest
0 голосов
/ 28 декабря 2018

Я хотел бы знать, как отображать информацию ниже.

Ссылка (JSON):

https://my.callofduty.com/api/papi-client/ce/v1/title/bo4/platform/psn/match/11337378706913618925/matchMapEvents

Что я хочу иметь:

"teams": [
      [
        {
          "provider": "psn",
          "username": "Germania1992"
        },
        {
          "provider": "psn",
          "username": "killzoneprofi"
        },
        {
          "provider": "psn",
          "username": "ayozetf87"
        },
        {
          "provider": "psn",
          "username": "Seith911"
        },
        {
          "provider": "psn",
          "username": "domibreu92"
        }
      ],
      [
        {
          "provider": "psn",
          "username": "Thejuankarboy"
        },
        {
          "provider": "psn",
          "username": "Gamermad101"
        },
        {
          "provider": "psn",
          "username": "Izdrap"
        },
        {
          "provider": "psn",
          "username": "Guerra_sv"
        },
        {
          "provider": "psn",
          "username": "TriX_FollOoW_YT"
        }
      ]
    ],

Я хочу отобразить ники разных команд

Пример: Команда 1 = Germania1992, killzoneprofi, ayozetf87, Seith911, domibreu92

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вам придется сделать двойной foreach, что точно.

<?php
// Get the json of the team
$team = team("https://my.callofduty.com/api/papi-client/ce/v1/title/bo4/platform/psn/match/11337378706913618925/matchMapEvents");

// Display the teams info
foreach($team as $nb=>$data){
    echo "Team $nb<br />";
    foreach($data as $key=>$value){
        echo "Provider: ".$value->provider."<br />";
        echo "Username: ".$value->username."<br />";
    }
    echo "<hr>";
}

// Returns the team array of the json
function team($jsonURL){
  $content=file_get_contents($jsonURL);
  $data=json_decode($content);
  return $data->data->teams;
}

?>

Вы можете увеличить номер команды на 1, чтобы избежать первого, равного 0

. Выше будет отображаться нижеснимок экрана (Вы можете отформатировать вывод по своему усмотрению)

enter image description here

0 голосов
/ 28 декабря 2018
    $result = [];
    $counter = 0;
    dump($array = json_decode(file_get_contents('https://my.callofduty.com/api/papi-client/ce/v1/title/bo4/platform/psn/match/11337378706913618925/matchMapEvents')));
    dump($t = array_column((array)$array, 'teams'));
    foreach ($t as $r) {
        foreach ($r as $p) {
            $counter++;
            foreach ($p as $value){
                $result["team$counter"][] = $value->username;
            }
        }
    }
    var_dump($result);
...