0

これは私がアクセスしようとしている出力です:

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+以降にアクセスすると問題が発生します。名前と ID を反復処理してテーブルに配置する必要があるため、ここに 2 つの foreach ループがありますが、問題はありません。[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

1つだけで機能しますが、それを実行しようとしてもエラーが発生し、0、1、2などを取得する必要があります.

4

2 に答える 2

1

私はあなたが解決策を考えすぎているかもしれないと思う..

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;
}
于 2013-05-17T17:51:43.080 に答える
0

$team_data はすでに名前と ID を持つオブジェクトです。そのため、2 番目をスキップして、foreach$team_data['id'] と $team_data['name'] に直接アクセスします

于 2013-05-17T17:53:10.500 に答える