所以我想尝试制作,代码将获得与JSON数组中的ID匹配的某些部分。
NULL
这是JSON:http://pastebin.ca/3591035
$ ItemName返回print(pandas.pivot_table(dataframe,values='id',index=['major_one','major_two'],columns='status',aggfunc='count',fill_value=fill_character),'\n')
但它不应该(至少我认为)。也许有人可以发现我在这里做的错误:/
答案 0 :(得分:0)
第二个参数true
到json_decode
告诉它将JSON对象转换为PHP关联数组而不是PHP对象。但是使用像$json->rgDescriptions
这样的语法需要$json
作为对象;对于数组,它应该是$json['rgDescriptions']
。
因此,要么将$json
的所有用法更改为使用数组语法,要么从true
中删除json_decode
参数。后者应该更容易。
此外,这一行:
$invIndexes = $index;
应该是:
$invIndexes[] = $index;
但你可以用:
代替那个循环$invIndexes = $json->rgInventory;
答案 1 :(得分:0)
如果您在json decode $json = json_decode($response, true);
中使用true,那么它将返回一个关联数组,因此您可以像$json['rgInventory']
而不是$json->rgInventory
一样访问值表单数组
要创建$invIndexes
数组,请使用以下命令:
$invIndexes = array();
foreach($json['rgInventory'] as $index){
$invIndexes[] = $index['id'];
}
在这里,您将获得$invIndexes
在您的厕所中,您再次使用$json->rgDescriptions
来访问值,将其更改为$json['rgInventory']
,并且对于所有其他值,使用数组键,例如$json['rgInventory']['index']['class']
1}}
无需$makearray = (array)$invIndexes;
直接使用$invIndexes
$index = $invIndexes[$id];
$item = $json['rgDescriptions'][$json['rgInventory'][$index]['classid']."_".$json['rgInventory'][$index]['instanceid']];
另一个错误是,在您的$ item中没有任何键tradeable
,其tradable
就像这样使用
if($item['tradeable'] != 1){
continue;
}
$ItemName = $item['market_hash_name'];
最后var_dump($ItemName);