如何在stdClass对象中循环编号索引


How do I loop through numbered indexes in a stdClass Object?

这是我试图访问的输出:

stdClass Object
    (
        [results] => stdClass Object
        (
            [columns] => stdClass Object
            (
                [name] => Name
                [id] => id
            )
            [data] => stdClass Object
            (
                [team] => Array
                (
                    [0] => stdClass Object
                    (
                        [name] => Kansas City
                        [id] => 47556332
                    )
                    [1] => stdClass Object
                    (
                        [name] => Chi White Sox
                        [id] => 03948575
                    )
                    [2] => stdClass Object
                    (
                        [name] => Detroit
                        [id] => 3747646625
                    )
               )    
            )
        )
    )
)

我试图得到这个的id,但我遇到了麻烦访问0+之后的任何东西。这里我有两个foreach循环因为我需要遍历name和id并将它们放入一个表中,但这样做没有问题。我只需要得到[0]里面的东西。我怎么引用这个0呢?

foreach ($data->results->data->team as $team_data) {
    foreach ($team_data->THE ID/NUMBER->name as $team_id) {
        #code...
    }
}
当我执行上面的代码时,我得到了很多错误。我尝试了不同的方法,并不断得到一个错误的形式:
Notice: Undefined property: stdClass::$0 in index.php on line 61 Notice: Trying to get property of non-object in index.php on line 61

此错误是由于尝试使用$id和$id++来获取编号部分。我知道以前有人问过这个问题,但我需要通过多个数字而不仅仅是0,因为显然

$team_data->{'0'}->name

只适用于一个,但即使尝试这样做也会出现错误,并且我需要获得0,1,2等

我想你可能想太多了。

foreach ($data->results->data->team as $team_id => $team_data) {
    // $team_id holds the index of the teams array
    echo $team_id;  
    echo $team_data->name;
    echo $team_data->id;
}

$team_data已经是包含了名称和id的对象。因此,跳过第二个foreach,直接访问$team_data['id']和$team_data['name']