我有一个JSON结果文件,它被解码为一个对象数组。我正在使用Foreach找到正确的player
,然后希望在正确的播放器下创建一个包含所有信息的数组。
这是对象数组的片段:
object(stdClass)#3 (1) {
["result"]=>
object(stdClass)#4 (18) {
["players"]=>
array(10) {
[0]=>
object(stdClass)#5 (24) {
["account_id"]=>
int(72775718)
["player_slot"]=>
int(0)
["hero_id"]=>
int(46)
["item_0"]=>
int(50)
["item_1"]=>
int(139)
["item_2"]=>
int(149)
["item_3"]=>
int(147)
["item_4"]=>
int(168)
["item_5"]=>
int(116)
["kills"]=>
int(26)
["deaths"]=>
int(10)
["assists"]=>
int(9)
["leaver_status"]=>
int(0)
["gold"]=>
int(1622)
["last_hits"]=>
int(285)
这里有几个players
,我正在使用account_id
找到正确的播放器:
foreach ($data_decoded->result->players as $val){
if($val->account_id == $this->PlayerID){
echo "found you!"."\n";
}
如何创建包含所有后续结果的数组?例如,在account_id
下方,我想存储所有这些信息(player_slot
,hero_id
等。)我是否需要使用另一个foreach?如果是这样,老实说,我不知道如何说出来。
我试过了:
foreach ($data_decoded->result->players as $val){
if($val->account_id == $this->PlayerID){
echo "found you!"."\n";
foreach($val as $test){
$dataarray=array($test);
}
但这只会添加与$ val相同的“级别”(不良术语)的值,而不是后续的值?
答案 0 :(得分:2)
if ($val->account_id == $this->PlayerID) {
$dataarray = (array) $val;
}