0

これは、foreach ループ経由でアクセスする必要があるデータ構造の print_r() バージョンです。

stdClass Object
(
    [DetailedResponse] => Array
        (
            [0] => stdClass Object
                ( ...
                )

            [1] => stdClass Object
                ( 
...

では、これらのオブジェクトを反復処理するにはどうすればよいでしょうか。

私はこのようなことをすべきだと感じることができます:

$object->DetailedResponse[0];
$object->DetailedResponse[1];

しかし、どうすればそれを foreach 型のループに入れることができますか !!

4

4 に答える 4

1

そのobjには複数のオブジェクトがあるようです。さらにforeachループを実行する必要があるかもしれません。このコードは、そのobjの最初のsessionIdを取得する必要があります。

foreach ($detailedresponses as $detailedresponse) {
    foreach ($detailedresponseas as $response) {
        echo $response->sessionId;

    }
}

このコードを実行して、objをより明確に確認します。
echo '<pre>'; print_r($detailsresponses); exit;

'$ detailsresponses'を正しい変数名に置き換えて、ここに投稿してください。読みやすくなります。

編集
このURLをチェックしてください。テストデータをそこに入れます:http: //pastie.org/1130373

取得しているオブジェクトを再作成し、そこにコメントを入れて、何が起こっているのかを理解できるようにしました:)

そして、次のようなプロパティを取得できます。

echo $object->DetailedResponse[0]->sessionId;
于 2010-08-31T07:46:34.120 に答える
0

とてもシンプルです。いわゆるphpの標準オブジェクトがあります。$object->property構文により、phpの他のオブジェクトと同じようにアクセスできます

したがって、次のように繰り返すことができます: foreach($object as $property)、またはforeach($object as $prop_name => $prop_val) でプロパティにアクセスできる場所$object->$prop_name

于 2010-08-31T07:47:26.853 に答える
0

クラスを保存して後で再利用する場合はserializeunserialize()

于 2010-08-31T07:47:51.767 に答える
0

これに対する良い解決策を得ました-他のstdClassと配列を含むstdClassがありました

function cleanEveryElement($someStdClass) {
    foreach ($someStdClass as &$property) {        
        if ($property instanceof stdClass || is_array($property)) {
            $property = cleanEveryElement($property);
        }
    else {
        // Perform some function on each element, eg:
        $property = trim($property);
        }
    }
return $someStdClass;
}
于 2014-02-17T05:48:02.287 に答える