Php 我是否可以循环遍历元素数组,在每次迭代中发出GET请求,并以某种方式将GET结果映射到相应的元素?
$CallourerMatches是一个对象,它包含一个名为matches的属性,该属性包含一个对象数组。每个对象都包含有关匹配的gameId的信息 为了获得关于比赛的具体信息,我必须使用gameId发出get请求。我目前正在遍历这些匹配项,并发出GET请求以获取关于每个匹配项的特定信息,但是,我想知道如何将返回的信息链接到$CalluerMatches对象中相应的匹配对象。在某种程度上,我希望为每个匹配创建一个新属性,然后将循环中GET请求的结果分配给它Php 我是否可以循环遍历元素数组,在每次迭代中发出GET请求,并以某种方式将GET结果映射到相应的元素?,php,laravel,Php,Laravel,$CallourerMatches是一个对象,它包含一个名为matches的属性,该属性包含一个对象数组。每个对象都包含有关匹配的gameId的信息 为了获得关于比赛的具体信息,我必须使用gameId发出get请求。我目前正在遍历这些匹配项,并发出GET请求以获取关于每个匹配项的特定信息,但是,我想知道如何将返回的信息链接到$CalluerMatches对象中相应的匹配对象。在某种程度上,我希望为每个匹配创建一个新属性,然后将循环中GET请求的结果分配给它 $getSummonerMatches
$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);
}
我看不出有什么理由不在每个对象上使用从API检索的数据设置一个名为matchInfo的新属性
<?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;
}
注意,foreach中添加了一个&。这样,$match就变成了对原始对象的引用,而不是副本,从而将我们的更改保持在foreach的范围之外
对于更为复杂的方法,您可以让这些对象中的每一个都属于一个实际的类,并使用一个方法来设置值,比如addMatchInfo$matchInfo,而不是直接创建属性