Могу ли я перебрать массив элементов, сделать запрос GET на каждой итерации и каким-то образом отобразить результат GET на соответствующий элемент? - PullRequest
0 голосов
/ 09 июня 2019

$ summonerMatches - это объект, который содержит свойство с именем match, которое содержит массив объектов.Каждый объект содержит информацию о совпадении, например gameId.

enter image description here

Чтобы получить конкретную информацию о совпадении, я должен сделать запрос GET, используяидентификатор игры.В настоящее время я перебираю эти совпадения и делаю GET-запрос для получения конкретной информации о каждом совпадении, однако мне интересно, как связать возвращенную информацию с соответствующим объектом совпадения внутри объекта $ summonerMatches.В некотором смысле, я хочу создать новое свойство для каждого соответствия, а затем назначить ему результат из запроса GET в цикле.

$getSummonerMatches = file_get_contents($region . "/lol/match/v4/matchlists/by-account/gvgxEQIJUq3bvbR_oasXkFHY7oJ5G2WViBGVCL1eKGJXsg?startIndex=0&endIndex=10&api_key=" . $apiKey);
$summonerMatches = json_decode($getSummonerMatches);

foreach ($summonerMatches->matches as $match) {
    $getMatchInfo = file_get_contents($region . "/lol/match/v4/matches/" . $match->gameId . "?api_key=" . $apiKey);
    $matchInfo = json_decode($getMatchInfo);
}

1 Ответ

0 голосов
/ 09 июня 2019

Я не вижу причины не устанавливать новый атрибут с именем matchInfo для каждого объекта с данными, полученными из API.

<?php

$getSummonerMatches = file_get_contents($region . "/lol/match/v4/matchlists/by-account/gvgxEQIJUq3bvbR_oasXkFHY7oJ5G2WViBGVCL1eKGJXsg?startIndex=0&endIndex=10&api_key=" . $apiKey);
$summonerMatches = json_decode($getSummonerMatches);

foreach ($summonerMatches->matches as &$match) {
    $getMatchInfo = file_get_contents($region . "/lol/match/v4/matches/" . $match->gameId . "?api_key=" . $apiKey);
    $matchInfo = json_decode($getMatchInfo);
    $match->matchInfo = $matchInfo;
}

Обратите внимание, что * forex был добавлен &. Таким образом, $match становится ссылкой на исходный объект, а не копией, тем самым сохраняя наши изменения за рамками foreach.

Для более изящного подхода вы можете иметь каждый из этих объектов, принадлежащих фактическому классу, и использовать метод для установки значения, например addMatchInfo($matchInfo), вместо непосредственного создания атрибута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...