SendinBlue: GetEmailCampaigns, не удается восстановить statsByDomain - PullRequest
0 голосов
/ 24 января 2020

Я работаю над 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;
}

Ответы [ 2 ]

0 голосов
/ 24 января 2020

В этом фрагменте кода $ 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);
0 голосов
/ 24 января 2020

На самом деле, это работает хорошо:

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;
}

Демо

...