0

我使用 SendinBlue Api 来恢复我的电子邮件活动的统计数据。但问题是我无法恢复其中一个对象,因为在“。”中。以对象的名义。

这里的 json :

[statistics] => stdClass Object
                 (
                   [statsByDomain] => stdClass Object
                      (
                        [gmail.com] => stdClass Object
                             (
                               [uniqueClicks] => 10
                               [clickers] => 130
                               [complaints] => 130
                               [sent] => 130
                               [softBounces] => 59
                               [hardBounces] => 48
                               [uniqueViews] => 59
                               [unsubscriptions] =>89
                               [viewed] => 130
                               [delivered] => 130
                             )

                       )

               )

但我不明白如何恢复“statsByDomain”的对象。有人可以帮助我吗?

第一部分运行良好,但知道我想恢复“statsByDomain”中包含的所有对象,但我不知道该怎么做。

现在我可以一个一个地恢复一个对象:

foreach($campagnes as $campagne){

    echo "<br> UniqueClicks : " .$campagne['statistics']-> statsByDomain -> {'gmail.com'}  -> uniqueClicks;
    echo "<br> UniqueClicks : " .$campagne['statistics']-> statsByDomain -> {'gmail.fr'}  -> uniqueClicks;
}
4

2 回答 2

0

在此代码片段中 $campagnes 包含您的数据,并且应该清楚如何提取其中的任何部分:

$campagnes = (object)array(
        'statistics' => (object)array(
            'statsByDomain' => (object)array(
                'gmail.com' => (object)array(
                    'uniqueClicks' => 10,
                    'clickers' => 130,
                    'complaints' => 130,
                    'sent' => 130,
                    'softBounces' => 59,
                    'hardBounces' => 48,
                    'uniqueViews' => 59,
                    'unsubscriptions' =>89,
                    'viewed' => 130,
                    'delivered' => 130
                )
            )
        )
    );

    var_dump($campagnes);

    var_dump($campagnes->statistics->statsByDomain-> {"gmail.com"}->uniqueClicks);
于 2020-01-24T14:29:42.497 回答
0

事实上,它运作良好:

foreach($campagnes  as $campagne){
    echo $campagne["statistics"]->statsByDomain->{"gmail.com"}->uniqueClicks.PHP_EOL;
}

演示

编辑

foreach($campagnes  as $campagne){
    foreach($campagne["statistics"]->statsByDomain as $key=>$obj){
       // $key = gmail.com or web.com or web2.org
        echo $obj->uniqueClicks.PHP_EOL; 
    }
    echo PHP_EOL;
}

演示

于 2020-01-24T14:09:29.913 回答