PHP访问名为的数组值
我正在尝试制作一个PHP网站,从(一个大的)数组中获取信息 该数组如下所示:PHP访问名为的数组值,php,arrays,Php,Arrays,我正在尝试制作一个PHP网站,从(一个大的)数组中获取信息 该数组如下所示: "playerstats": { "steamID": "MyID", "gameName": "ValveTestApp260", "stats": [ { "name": "total_kills", "value": 35342 },
"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'];
问题是,我在数组中有数百个“stats”,有没有一种方法可以访问带有名称的所有值(比如total_kills&total_deations),而不必计算所有数组
感谢阅读:)要从多维数组中选择统计信息:
$searchName = 'total_kills';
$stat = $jsonforgame['playerstats']['stats'][array_search($searchName, array_column($jsonforgame['playerstats']['stats'], 'name'))];
使用
数组搜索:
$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;
您可以更改stats数组的结构,将stat名称用作数组键,如下所示:
"playerstats": {
"steamID": "MyID",
"gameName": "ValveTestApp260",
"stats": {
"total_kills": 35342,
"total_deaths": 30465,
"total_time_played": 1952281
}
}
然后您可以使用
$kills = $jsonforgame['playerstats']['stats']['total_kills'];
编辑:使用question的数组名。他不是问如何构造统计数据,而是问如何访问它们。这种结构使它们更容易访问。如果重新构造数组是一种选择,那么这将更容易和更具可读性。这将是理想的方法,但我对数组结构没有影响。