2012-02-12 26 views
0

私はaffiliateservice apiでTransactionListを取得しています。 マイますprint_r($応答)が私に与え、この(私がxxに入れていたが、実際の数字があります):アフィリエートAPI応答の解析

stdClass Object 
(
    [getTransactionListReturn] => Array 
     (
      [0] => stdClass Object 
       (
        [iId] => xx 
        [sStatus] => pending 
        [sType] => normal 
        [sIp] => xx 
        [bPaid] => xx 
        [iPaymentId] => xx 
        [iMerchantId] => xx 
        [fSaleAmount] => xx 
        [fCommissionAmount] => xx 
        [dClickDate] => xx 
        [dTransactionDate] => xx 
        [sClickref] => xx 
        [aTransactionParts] => Array 
         (
          [0] => stdClass Object 
           (
            [sCommissionGroupName] => STANDARD 
            [fSaleAmount] => xx 
            [fCommissionAmount] => xx 
            [iCommission] => xx 
            [sCommissionType] => percentage 
           ) 

         ) 

       ) 

      [1] => stdClass Object 
       (
        [iId] => x 
        [sStatus] => pending 
        [sType] => normal 
        [sIp] => x 
        [bPaid] => 
        [iPaymentId] => x 
        [iMerchantId] => x 
        [fSaleAmount] => x 
        [fCommissionAmount] => x 
        [dClickDate] => x 
        [dTransactionDate] => x 
        [sClickref] => x 
        [sSearchSiteName] => x 
        [sSearchSiteKeyword] => x 
        [aTransactionParts] => Array 
         (
          [0] => stdClass Object 
           (
            [sCommissionGroupName] => DEFAULT 
            [fSaleAmount] => x 
            [fCommissionAmount] => x 
            [iCommission] => x 
            [sCommissionType] => percentage 
           ) 

         ) 

       ) 

     ) 

    [getTransactionListCountReturn] => stdClass Object 
     (
      [iRowsReturned] => 2 
      [iRowsAvailable] => 386 
     ) 

) 

だから、私の質問はどのように私は「パース」ができているこのPHPで?私はこれらのデータにどのようにアクセスできますか?私は何か

$response[0]->sStatus; 

のような意味であなたの助けをありがとう!

答えて

1

すべてはstdClassのインスタンスで、PHPの標準クラスです(もちろん配列は例外です)。

これは、->を使用して各オブジェクトのプロパティにアクセスすることを意味します。

$someSaleAmount = 
     $response->getTransactionListReturn[0]->aTransactionParts[0]->fSaleAmount; 

json_decode()を使用している可能性があります。オブジェクトよりも配列を扱う場合は、2番目のパラメータをtrueに設定することができます。

1

さて、最初のことは、配列ではなく、オブジェクトであり、値があるオブジェクトよりも先です。 私は次のようなものに行くでしょう:

<code> 
$response = $obj->getTransactionListReturn(); 
foreach($response as $key => $value) { 
    // key is index (0, 1, ..., n) 
    // value is the variable like iId 
    echo $value->id; 
} 
</code>