Php 方括号中的数组混淆
我正在使用一个API,它在许多数组中包含大量数据,正如您可能知道的,这可能会非常混乱。我对API比较陌生,尤其是这个API没有文档 我下面的代码是获取最近的_games()函数,该函数拉动整个API,然后我使用foreach循环进入数据内部Php 方括号中的数组混淆,php,arrays,api,Php,Arrays,Api,我正在使用一个API,它在许多数组中包含大量数据,正如您可能知道的,这可能会非常混乱。我对API比较陌生,尤其是这个API没有文档 我下面的代码是获取最近的_games()函数,该函数拉动整个API,然后我使用foreach循环进入数据内部 $games = $player->recent_games(); foreach($games['gameStatistics']['array'] as $key => $gameStatistic) { $game_date[st
$games = $player->recent_games();
foreach($games['gameStatistics']['array'] as $key => $gameStatistic) {
$game_date[strtotime($gameStatistic['createDate'])] = $gameStatistic;
}
// order data
krsort($game_date);
foreach ($game_date as $game => $data) {
$statistics[$data] = $data['statistics'];
}
我收到以下错误,如非法偏移:
$statistics[$data] = $data['statistics'];
有没有办法继续嵌套阵列($game_date)以获取我需要的数据
如果你需要更多信息,请告诉我
谢谢
编辑更多信息:
顶部的第一个foreach循环循环为每个游戏循环一个unix时间戳键。看起来像这样:
[1370947566] => Array
(
[skinName] => Skin_name
[ranked] => 1
[statistics] => Array
(
[array] => Array
(
[0] => Array
(
[statType] => stat_data
[value] => 1234
)
[1] => Array
(
[statType] => stat_data
[value] => 1234
)
正如您所看到的,它非常嵌套,但我正在尝试访问单个统计数据数组。我希望这有帮助
$statistics[$data] = $data['statistics'];
这条线绝对不可能是正确的
右侧使用$data
,就像它是一个数组一样,索引到其中。左侧使用$data
作为数组的键。由于键的唯一有效类型是字符串和整数,$data
不能同时满足这两个表达式的要求——它不能是数组和字符串或整数
从错误消息中可以明显看出,$data
实际上是一个数组,因此将其用作$statistics[$data]
是错误的。您希望$statistics
成为什么
这条线绝对不可能是正确的
右侧使用$data
,就像它是一个数组一样,索引到其中。左侧使用$data
作为数组的键。由于键的唯一有效类型是字符串和整数,$data
不能同时满足这两个表达式的要求——它不能是数组和字符串或整数
从错误消息中可以明显看出,
$data
实际上是一个数组,因此将其用作$statistics[$data]
是错误的。您希望$statistics
成为什么?非法偏移量意味着您使用的数组键不能用作数组键,例如$x=array();echo$foo[$x]
无效,因为数组不能是数组键。非法偏移量意味着您使用的数组键不能用作数组键,例如$x=array();echo$foo[$x]
无效,因为数组不能是数组键。啊,我明白了,你说得对!我计划在第一个foreach循环中使用第二个foreach循环,以便在深入嵌套数组时仍然获得所有数组键。不确定这是否有意义?@CarlTaylor1989:不太清楚。。。你可能想加入一个小例子来展示你正在努力实现的目标。乔恩,我在上面添加了更多细节。啊,我明白了,你说得对!我计划在第一个foreach循环中使用第二个foreach循环,以便在深入嵌套数组时仍然获得所有数组键。不确定这是否有意义?@CarlTaylor1989:不太清楚。。。你可能想包括一个小例子来展示你正在努力实现的目标。乔恩,我已经在上面添加了更多细节。