0

私は気が狂うと思いますが、可能な限りすべてを試したと思います!

そのようなオブジェクトを取得しました;

    object(stdClass)#9 (8) {
  ["Results"]=>
  array(3) {
    [0]=>
    object(stdClass)#10 (5) {
      ["EmailAddress"]=>
      string(22) "38ec95a@emailtests.com"
      ["Name"]=>
      string(13) "Daniel Crabbe"
      ["Date"]=>
      string(19) "2011-07-11 13:00:00"
      ["State"]=>
      string(6) "Active"
      ["CustomFields"]=>
      array(0) {
      }
    }
    [1]=>
    object(stdClass)#11 (5) {
      ["EmailAddress"]=>
      string(12) "dan@jynk.net"
      ["Name"]=>
      string(13) "Daniel Crabbe"
      ["Date"]=>
      string(19) "2011-10-11 12:43:00"
      ["State"]=>
      string(6) "Active"
      ["CustomFields"]=>
      array(0) {
      }
    }
    [2]=>
    object(stdClass)#12 (5) {
      ["EmailAddress"]=>
      string(23) "nikolaprice@hotmail.com"
      ["Name"]=>
      string(12) "Nicola Price"
      ["Date"]=>
      string(19) "2011-08-25 16:24:00"
      ["State"]=>
      string(6) "Active"
      ["CustomFields"]=>
      array(0) {
      }
    }
  }
  ["ResultsOrderedBy"]=>
  string(5) "email"
  ["OrderDirection"]=>
  string(3) "asc"
  ["PageNumber"]=>
  int(1)
  ["PageSize"]=>
  int(150)
  ["RecordsOnThisPage"]=>
  int(3)
  ["TotalNumberOfRecords"]=>
  int(3)
  ["NumberOfPages"]=>
  int(1)
}

array(3) をループして電子メール アドレスを取得しようとしています。

foreach($subscribed_result->results as $sr){
    $res++;
    echo $res.": ".$sr->EmailAddress." ".$sr['EmailAddress']." ";
}

いくつかのバリエーションがありますが、どこにも行きません。何を理解しているのですか?

アップデート

これはうまく機能し、$sr からオブジェクトを配列として取得できますが、それでも $sr->emailAddress を取得できません。

print $subscribed_result->response->Results[0]->EmailAddress; // works?

        foreach($subscribed_result->response->Results as $sr){
            echo $sr->EmailAdress."";   // doesn't work? 
            echo "<pre>";
            print_r($sr);
            echo "</pre>";
        }

吐き出す;

stdClass Object
(
    [EmailAddress] => 38ec95a@emailtests.com
    [Name] => Daniel Crabbe
    [Date] => 2011-07-11 13:00:00
    [State] => Active
    [CustomFields] => Array
        (
        )

)
4

1 に答える 1

4

次のように変更します。

foreach($subscribed_result->Results as $sr){
    $res++;
    echo $res.": ".$sr->EmailAdress;
}

Resultsの代わりに注意してくださいresultsResultsはオブジェクトなので、機能し$sr['EmailAddress']ません。このように配列にのみアクセスできます。$sr->EmailAddressあなたが望むものを印刷します。

説明のために、これは最初の電子メールアドレスに直接アクセスする方法です。

print $subscribed_result->Results[0]->EmailAddress;
于 2011-10-11T12:19:00.513 に答える