Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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中访问和过滤嵌套对象数组中的数据_Php - Fatal编程技术网

在PHP中访问和过滤嵌套对象数组中的数据

在PHP中访问和过滤嵌套对象数组中的数据,php,Php,我使用传奇联盟的api,我会得到召唤师的数据 我正在使用传奇联盟的API来获取召唤师数据 守则: object(stdClass)[3] public 'summonerId' => int XXXXXXXXXXX public 'playerStatSummaries' => array (size=15) 0 => object(stdClass)[4] public 'playerStatSummaryType' => st

我使用传奇联盟的api,我会得到召唤师的数据

我正在使用传奇联盟的API来获取召唤师数据

守则:

object(stdClass)[3]
 public 'summonerId' => int XXXXXXXXXXX
  public 'playerStatSummaries' => 
    array (size=15)
  0 => 
    object(stdClass)[4]
      public 'playerStatSummaryType' => string 'AramUnranked5x5' (length=15)
      public 'wins' => int 100
      public 'modifyDate' => float 1412611932000
      public 'aggregatedStats' => 
        object(stdClass)[5]
          ...
我只想在“Playerstatsummarytype”的值为“RankedSolo5x5”时获取数据

我一直在尝试使用这个:

$win_ranked = $parsed_json2->{'playerStatSummaries'}[8]->{'wins'};
$losses_ranked = $parsed_json2->{'playerStatSummaries'}[8]->{'losses'};
但对于某些召唤师,有时数字是8或9

那么,只有当“PlayerStatsSummaryType”为RankedSolo5x5时,我如何获取数据呢


谢谢=)

所以看起来您只需要在
$parsed\u json2->playerStatSummaries
处过滤数组

这应该很简单:

$filtered_array = array_filter($parsed_json2->playerStatSummaries, function($item) {
    return ($item->playerStatSummaryType === 'RankedSolo5x5');
});
// now you can get at wins/losses for items in filtered array like:
foreach ($filtered_array as $obj) {
    echo 'Wins: ' . $obj->wins;
    echo 'Losses: ' . $obj->losses;
}

这里没有JSON。对我来说,这看起来像是一个var_转储而不是JSON…是的,我使用var_转储(JSON_decode($json2));“我只想在“PlayerStatsSummaryType”为RankedSolo5x5”的情况下获取数据——那么您必须首先访问该属性,并比较其值……并且仅使用剩余的数据,如果它与您要查找的内容相匹配。这里的
{}
语法的用法是什么?非常奇怪,除非你试图访问基于变量名的属性,比如
$object->{$some_property}
谢谢你,我已经试着做了一个变量($wins_ra_3=全部赢,$win_lo_3=全部输),因为我需要计算//在计算上,排名函数total_r($win_排名,$loss_排名){return$win_排名+$loss_排名;}//在fait la division函数Pourcentage($Nombre,$total){return$Nombre*100/$total;}$total_r=total_r($win_排名,$loss_排名)//排名$Winrate=Pourcentage($win\u排名,$total\r)//在计算中如何得到我的结果?我不清楚你在问什么。如果您有以下编码问题,您可能需要打开一个新问题。