循环使用Hubspot交易API的JSON输出


Looping through JSON output from Hubspot deals API

我正在尝试使用Hubspot API (http://developers.hubspot.com/docs/overview)来循环所有交易,并仅查找当前的交易,然后对这些交易进行处理。

无论我尝试做什么,我都不知道如何访问我需要的数据-下面是输出的示例。

在API中有很多项目,如下面的dealstage和下面的值字段是我需要访问的-例如,在这种情况下,交易是关闭的。另一个例子是amount,它也有一个value条目,这样我就可以看到交易值。

我想循环遍历所有交易,并为每个交易获取交易阶段、金额、上次更新、所有者等。这些都包含在一个数组中,其布局与下面的[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
                                )

这样的东西是你正在寻找的吗?循环遍历数组,挑选出您感兴趣的项目,并将它们放入一个简单的数组中,以便稍后在构建电子邮件时使用。

$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);