数组混淆方括号

时间:2013-06-11 19:35:48

标签: php arrays api

我正在使用一个API,它在很多数组中都有很多数据,你可能会觉得它很混乱。我对API很新,特别是没有文档。

下面我的代码是抓取recent_games()函数,它正在拉动整个API,然后我使用foreach循环来获取数据。

$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
                              )

正如你可以看到它完全嵌套但我试图找到个别统计数组。我希望有帮助吗?

1 个答案:

答案 0 :(得分:3)

$statistics[$data] = $data['statistics'];

这条线绝对没有办法。

右侧使用$data,就像它是一个数组,索引到它。左侧将$data用作到数组中。由于键的唯一有效类型是字符串和整数,$data不能同时满足两个表达式的要求 - 它不能是数组字符串或整数。

从错误消息中可以明显看出$data实际上是一个数组,因此将其用作$staticstics[$data]是错误的。你想要$statistics是什么?