在PHP中访问和过滤嵌套对象数组中的数据
我使用传奇联盟的api,我会得到召唤师的数据 我正在使用传奇联盟的API来获取召唤师数据 守则:在PHP中访问和过滤嵌套对象数组中的数据,php,Php,我使用传奇联盟的api,我会得到召唤师的数据 我正在使用传奇联盟的API来获取召唤师数据 守则: object(stdClass)[3] public 'summonerId' => int XXXXXXXXXXX public 'playerStatSummaries' => array (size=15) 0 => object(stdClass)[4] public 'playerStatSummaryType' => st
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)//在计算中如何得到我的结果?我不清楚你在问什么。如果您有以下编码问题,您可能需要打开一个新问题。