JSON-使用PHP访问嵌套数组中的数据

JSON-使用PHP访问嵌套数组中的数据,php,arrays,json,Php,Arrays,Json,我有一个JSON文件,其结构如下 "data": { "lineups": { "team_a": [ { "player_id": 10127, "shirt_number": 1, "play

我有一个JSON文件,其结构如下


"data": {
        "lineups": {
            "team_a": [
                {
                    "player_id": 10127,
                    "shirt_number": 1,
                    "player_events": []
                },
                {
                    "player_id": 8515,
                    "shirt_number": 6,
                    "player_events": [
                        {
                            "event_type": "Yellow",
                            "event_time": "89"
                        }
                    ]
                },
                {
                    "player_id": 8630,
                    "shirt_number": 3,
                    "player_events": []
                },
                {
                    "player_id": 8202,
                    "shirt_number": 2,
                    "player_events": []
                },
                {
                    "player_id": 7296,
                    "shirt_number": 12,
                    "player_events": []
                },
                {
                    "player_id": 8056,
                    "shirt_number": 5,
                    "player_events": []
                },
                {
                    "player_id": 8697,
                    "shirt_number": 4,
                    "player_events": [
                        {
                            "event_type": "Goal",
                            "event_time": "44"
                        }
                    ]
                },
                {
                    "player_id": 7284,
                    "shirt_number": 16,
                    "player_events": []
                },
                {
                    "player_id": 8298,
                    "shirt_number": 7,
                    "player_events": [
                        {
                            "event_type": "Goal",
                            "event_time": "17"
                        },
                        {
                            "event_type": "Goal",
                            "event_time": "43"
                        }
                    ]
                },
                {
                    "player_id": 7325,
                    "shirt_number": 17,
                    "player_events": []
                },
                {
                    "player_id": 4281,
                    "shirt_number": 22,
                    "player_events": []
                }
            ],
            "team_b": [
                {
                    "player_id": 4318,
                    "shirt_number": 1,
                    "player_events": []
                },
                {
                    "player_id": 4040,
                    "shirt_number": 23,
                    "player_events": []
                },
                {
                    "player_id": 3939,
                    "shirt_number": 2,
                    "player_events": []
                },
                {
                    "player_id": 3940,
                    "shirt_number": 6,
                    "player_events": []
                },
                {
                    "player_id": 3964,
                    "shirt_number": 5,
                    "player_events": [
                        {
                            "event_type": "Yellow",
                            "event_time": "34"
                        }
                    ]
                },
                {
                    "player_id": 3954,
                    "shirt_number": 4,
                    "player_events": []
                },
                {
                    "player_id": 4368,
                    "shirt_number": 18,
                    "player_events": []
                },
                {
                    "player_id": 4244,
                    "shirt_number": 13,
                    "player_events": []
                },
                {
                    "player_id": 4082,
                    "shirt_number": 19,
                    "player_events": []
                },
                {
                    "player_id": 4305,
                    "shirt_number": 10,
                    "player_events": [
                        {
                            "event_type": "Yellow",
                            "event_time": "68"
                        }
                    ]
                },
                {
                    "player_id": 171045,
                    "shirt_number": 11,
                    "player_events": []
                }
            ]
        },
        "bench": {
            "team_a": [
                {
                    "player_in_id": 8329,
                    "player_in_shirt_number": 10,
                    "player_out_id": 4281,
                    "player_out_time": " 65'",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4225,
                    "player_in_shirt_number": 9,
                    "player_out_id": 7325,
                    "player_out_time": " 75'",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4010,
                    "player_in_shirt_number": 15,
                    "player_out_id": 7296,
                    "player_out_time": " 79'",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4734,
                    "player_in_shirt_number": 11,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4390,
                    "player_in_shirt_number": 27,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4861,
                    "player_in_shirt_number": 25,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                },
                {
                    "player_in_id": 7256,
                    "player_in_shirt_number": 8,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                }
            ],
            "team_b": [
                {
                    "player_in_id": 7445,
                    "player_in_shirt_number": 3,
                    "player_out_id": 4040,
                    "player_out_time": " 46'",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4367,
                    "player_in_shirt_number": 12,
                    "player_out_id": 171045,
                    "player_out_time": " 59'",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4089,
                    "player_in_shirt_number": 27,
                    "player_out_id": 4082,
                    "player_out_time": " 78'",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4041,
                    "player_in_shirt_number": 26,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                },
                {
                    "player_in_id": 2867,
                    "player_in_shirt_number": 20,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4031,
                    "player_in_shirt_number": 14,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                },
                {
                    "player_in_id": 4021,
                    "player_in_shirt_number": 25,
                    "player_out_id": -1,
                    "player_out_time": "-1",
                    "player_in_events": []
                }
            ]
        },
我正在尝试访问a队的球员id

我尝试使用两个foreach循环进行访问,如下所示

$match = json_decode($json, true); // Decode data to associative array
$match = $match['data'];

foreach ($match as $key=> $game){
    foreach ($game['lineups'] as $key=> $lineup){
        echo $lineup['team_a']['player_id'];

}}
输出为零。我也尝试过数字索引,比如echo$lineup[0]['player_id']


编辑为包含完整的JSON结构

通过删除foreach循环并将其替换为for循环解决了这一问题,因为我知道需要执行循环多少次。然后我将数据添加到一个名为$lineupTeams的关联数组中,并使用另一个循环遍历每个值

$lineupTeams = array();
for ($x = 0; $x <= 10; $x++) {  
        $lineupTeams[] = array(
        'home_stats_ID' => $match['lineups']['team_a'][$x]['player_id']
        ); 
    }

foreach ($lineupTeams as $game) { 
        echo $game['home_stats_ID'];

谢谢你的帮助。

看起来应该是$lineup['team_a'][0]['player_id']谢谢@NigelRen,但也没有输出任何内容。这回答了你的问题吗?你的结构不清楚,因此很难指出错误。您是否尝试过任何调试?仅仅转储变量就可以帮助您找到假设错误结构的位置。此外,如果没有输出,您可能会收到一些未定义的索引通知。这不是有效的JSON。