循环使用PHP中的Google AnalyticsAPI类返回的数组

时间:2013-11-13 10:34:04

标签: php arrays foreach google-analytics-api

我正在使用PHP中的google anaylitics gapi类返回以下数组,如下所示。循环遍历此数组并回显数据的最佳方法是什么?

我以为我可以使用像下面这样的foreach,但它会变成空白。这可能是一件容易的事情,但我正在努力让我的大脑进入正常状态。我认为问题可能与gapi类返回的数据有关,而不仅仅是数组?

foreach($results as $result) {

 echo 'Goalresults 1:'. $result->metrics->goal1Completions;
 echo 'Goalresults 2:'. $result->metrics->goal2Completions;

}

这也不起作用:

foreach($results as $result) {

 echo 'Goalresults 1:'. $result[metrics][goal1Completions];
 echo 'Goalresults 2:'. $result[metrics][goal2Completions];

}

但是给出了错误致命错误:不能在goals.php中使用gapiReportEntry类型的对象作为数组

阵列:

Array
(
[0] => gapiReportEntry Object
    (
        [metrics] => Array
            (
                [goal1Completions] => 7
                [goal2Completions] => 18
            )

        [dimensions] => Array
            (
                [hour] => 01
                [date] => 20131113
            )

    )

[1] => gapiReportEntry Object
    (
        [metrics] => Array
            (
                [goal1Completions] => 32
                [goal2Completions] => 27
            )

        [dimensions] => Array
            (
                [hour] => 00
                [date] => 20131113
            )

    )

)

1 个答案:

答案 0 :(得分:-1)

通过使用此函数将gapiReportEntry对象转换为数组来修复它。

function objectToArray( $object ) {
    if( !is_object( $object ) && !is_array( $object ) ) {
        return $object;
    }
    if( is_object( $object ) ) {
        $object = (array) $object;
    }
    return array_map( 'objectToArray', $object );
}

这是从这里开始的:How do I convert an object to an array?