我试图创建一个从(大型)数组中获取信息的PHP网站。
数组如下所示:
"playerstats": {
"steamID": "MyID",
"gameName": "ValveTestApp260",
"stats": [
{
"name": "total_kills",
"value": 35342
},
{
"name": "total_deaths",
"value": 30465
},
{
"name": "total_time_played",
"value": 1952281
so on and so on...
我现在访问它的方式是使用:
$kills = $jsonforgame['playerstats']['stats'][0]['value'];
$deaths = $jsonforgame['playerstats']['stats'][1]['value'];
问题在于我有数百个统计数据'在数组中,有没有办法使用名称(如total_kills& total_deaths)访问所有值,而不必计算所有数组?
感谢阅读:)
答案 0 :(得分:2)
从多维数组中选择统计数据:
$searchName = 'total_kills';
$stat = $jsonforgame['playerstats']['stats'][array_search($searchName, array_column($jsonforgame['playerstats']['stats'], 'name'))];
答案 1 :(得分:0)
使用array_search
:
$stats_array = $jsonforgame['playerstats']['stats'];
$key = array_search('total_deaths', array_column($stats_array, 'name'));
$deaths = $stats_array[$key]['value'];
echo var_dump($key).PHP_EOL;
echo var_dump($stats_array[$key]).PHP_EOL;
echo var_dump($deaths).PHP_EOL;
答案 2 :(得分:0)
您可以更改stats数组的结构,使用stat name作为数组键,如下所示:
"playerstats": {
"steamID": "MyID",
"gameName": "ValveTestApp260",
"stats": {
"total_kills": 35342,
"total_deaths": 30465,
"total_time_played": 1952281
}
}
然后您可以使用
进行访问$kills = $jsonforgame['playerstats']['stats']['total_kills'];