2016-08-16 5 views
1

私はHubspot API(http://developers.hubspot.com/docs/overview)を使用してすべての取引をループし、現在のものだけを見つけて、それらの取引で何かを実行しようとしています。HubspotのJSON出力からのループAPI

私が何をしようとしても、私が必要とするデータにどのようにアクセスするのか、私の頭を尽くすことはできません。以下は出力例です。

APIには、以下のようなアイテムがたくさんあります。これらの下の値フィールドは私がアクセスする必要があります。たとえば、この場合の取引はクローズドです。もう一つの例は金額で、これも値の入力があるので、取引価値を見ることができます。

私はすべての取引をループし、各取引については、取引、金額、最終更新、所有者などを取得したいと思います。これらのそれぞれは、以下の[dealstage]と同じレイアウトの配列に含まれています

私は各取引のdealstageの値をどこに出力できますか?これを行う方法?

foreach ($list['deals'] as $line) { 
    foreach ($line['properties'] as $row => $value) { 
     if ($row=="dealstage") { 
      $stage=$value['value']; 
      print $stage."<br>"; 
     } 
    } 
} 

アレイの例:

Array 
(
    [deals] => Array 
     (
      [0] => Array 
       (
        [portalId] => 12345 
        [dealId] => 67890 
        [isDeleted] => 
        [associations] => Array 
         (
          [associatedVids] => Array 
           (
            [0] => 4051 
           ) 

          [associatedCompanyIds] => Array 
           (
            [0] => 23456 
           ) 

          [associatedDealIds] => Array 
           (
           ) 

         ) 

        [properties] => Array 
         (
          [dealstage] => Array 
           (
            [value] => closedlost 
           ) 

          [createdate] => Array 
           (
            [value] => 1471334633784 
           ) 

          [amount] => Array 
           (
            [value] => 1000 
           ) 
+0

後のコード – RiggsFolly

+0

で、私は後でそれを使用することができるようにしたいあなたはこのデータを印刷しますか、またはあなたには、いくつかの他の用途のためにそれをキャプチャしたいです - アイデアは、すべての取引を電子メールで送信することですx日以内に更新されていないすべての取引をループしました – bhttoan

答えて

2

なり、このようなものは、あなたが探しているものも。興味のある項目を選択して配列をループし、後であなたの電子メールを作成するときに使用するための素敵なシンプルな配列に配置します。

$for_email = array(); 

foreach ($list['deals'] as $line) { 
    $t = array(); 
    if (isset($line['properties']['dealstage']['value'])) { 
     $t['dealstage'] = $line['properties']['dealstage']['value']; 
    } 
    if (isset($line['properties']['amount']['value'])) { 
     $t['amount'] = $line['properties']['amount']['value']; 
    } 
    if (isset($line['properties']['createdate']['value'])) { 
     $t['createdate'] = $line['properties']['createdate']['value']; 
    } 

    // any other data you want to capture 

    // put this data in the new array 
    $for_email[] = $t; 
} 

// check what the new array looks like 
print_r($for_email); 
+0

はい、動作します - あなたのコードにいくつかの小さな誤植。 {} for_email = array()は$ for_emailでなければならず、if(issetはそれぞれ閉じられていません)。あなたの助けをありがとう:) – bhttoan

+0

ありがとう!コピー/ペーストは毎回私を得ます!!!一定!もっとコーヒーが必要です – RiggsFolly

関連する問題