Javascript 使用数组内容进行Json解码
我正在培训自己的JSON和PHP,我遇到了一个问题 我将Json解码如下所示:Javascript 使用数组内容进行Json解码,javascript,php,json,api,parsing,Javascript,Php,Json,Api,Parsing,我正在培训自己的JSON和PHP,我遇到了一个问题 我将Json解码如下所示: "playerstats": { "steamID": "75068112", "gameName": "ValveTestApp260", "stats": [ { "name": "total_kills", "value": 2314497 }, { "name": "
"playerstats": {
"steamID": "75068112",
"gameName": "ValveTestApp260",
"stats": [
{
"name": "total_kills",
"value": 2314497
},
{
"name": "total_deaths",
"value": 1811387
},
要解析为php,我需要:
$url = 'myrul';
$content = file_get_contents($url);
$json = json_decode($content, true);
echo $json['playerstats']['stats'][1]['name']
它可以工作,但问题是当我更改id以获取统计信息时,数组的顺序不一样:/
所以我不能使用[2]或任何其他数字来获取数据
我在这里发帖是想知道如何使用每个数组的属性名“total_kills”而不是[1]…[2]
感谢您的支持您正在寻找一种在阵列上循环的方法。在PHP中,您可以执行以下操作:
$url = 'myrul';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach($json['playerstats']['stats'] as $row )
{
echo $row['name'];
echo $row['value'];
}
$url = 'myurl';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach($json["playerstats"]["stats"] as $stat){
if($stat["name"] == "total_kills"){
echo "total kills: ".$stat["value"];
}
elseif($stat["name"] == "total_deaths"){
// ...
}
// etc... continue to select all parameters you would like
}
这将允许您使用if-else语句获取每个名为的stat的值。使用foreach并使用if-condition检查名称是否为“total_kills”,然后像这样将其存储到新数组中
<?php
$json = json_decode($content, true);
$new_array =array();
$i=0;
foreach($json['playerstats']['stats'] as $row )
{
if($row['name']=='total_kills')
{
$new_array[]=array($row['name']=>$row['value']);
}
if($i<10)
{
break;
}
$i++
}
print_r($new_array);
?>
处理数组中所有对象的另一种方法是使用函数,该函数将另一个函数作为其参数之一。只要有可能,就使用它将迫使您坚持良好的编程实践,因为传入函数不能修改数组之外的值和通过use传入的参数。replice of?使用foreach$json['playerstats']['stats']作为$row{echo$row['name'];echo$row['value'];}我试过用for-each,它可以工作,但我只想要10个值,每次返回200或它太高:/I我想手动操作。我真的想按名称筛选并返回5names maxexit的值,在达到某个条件后退出foreach{ifi==10{break;}}它会工作吗?因为我不想知道第1个、第2个、第55个、第64个、第121个和第186个的名称和值,但不能使用它们的数字进行过滤,只是它们的名称。对不起,我独自工作,独自训练,所以我没有按学校学习:/谢谢!这项工作做得很好,我学会了做事的方法:祝你有愉快的一天:很高兴帮助你@lucastank你,这项工作!另一个答案是post,我选择了它,但这也帮助了我: