Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我是否可以循环遍历元素数组,在每次迭代中发出GET请求,并以某种方式将GET结果映射到相应的元素?_Php_Laravel - Fatal编程技术网

Php 我是否可以循环遍历元素数组,在每次迭代中发出GET请求,并以某种方式将GET结果映射到相应的元素?

Php 我是否可以循环遍历元素数组,在每次迭代中发出GET请求,并以某种方式将GET结果映射到相应的元素?,php,laravel,Php,Laravel,$CallourerMatches是一个对象,它包含一个名为matches的属性,该属性包含一个对象数组。每个对象都包含有关匹配的gameId的信息 为了获得关于比赛的具体信息,我必须使用gameId发出get请求。我目前正在遍历这些匹配项,并发出GET请求以获取关于每个匹配项的特定信息,但是,我想知道如何将返回的信息链接到$CalluerMatches对象中相应的匹配对象。在某种程度上,我希望为每个匹配创建一个新属性,然后将循环中GET请求的结果分配给它 $getSummonerMatches

$CallourerMatches是一个对象,它包含一个名为matches的属性,该属性包含一个对象数组。每个对象都包含有关匹配的gameId的信息

为了获得关于比赛的具体信息,我必须使用gameId发出get请求。我目前正在遍历这些匹配项,并发出GET请求以获取关于每个匹配项的特定信息,但是,我想知道如何将返回的信息链接到$CalluerMatches对象中相应的匹配对象。在某种程度上,我希望为每个匹配创建一个新属性,然后将循环中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);
}

我看不出有什么理由不在每个对象上使用从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,而不是直接创建属性