从Google API检索数据并填充两次

时间:2011-09-04 04:05:21

标签: php arrays api charts

我需要你的帮助,因为我一直坚持如何从Google API获取辅助数据并在图表上显示它们,让我解释一下:

我已成功从Google AnalyticsAPI检索“访问”数据,并使用以下代码在我的图表中显示这些数据:

                $report3 = $ga->getReport(
                array('dimensions'=>urlencode('ga:date'),
                    'metrics'=>urlencode('ga:pageviews,ga:visits'),
                    'filters'=>urlencode(''),
                    'sort'=>'ga:date'
                    )
                );

给我一​​个类似的数组:

[20110726] => Array
    (
        [ga:pageviews] => 0
        [ga:visits] => 0
    )

然后我将这些信息放在图表上:

    <script type='text/javascript'>
    var ga_data = [
    <?php
        $str = "";
        foreach ($report3 as $value)
            $str.="{$value["ga:visits"]},";
        $str = rtrim($str,",");
    echo $str;
    ?>
    ];
</script>

最后:

      // Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Month');
data.addColumn('number', 'visits');
data.addRows(ga_data.length*1);
for (i=9; i<ga_data.length; i++){

    data.setValue(i, 0, 'DATE NEEDED');
    data.setValue(i, 1, ga_data[i]);
}

唯一的问题是我需要在图表上显示日期:( {[20110726] => Array ( [ga:pageviews] => 0 [ga:visits] => 0 )),就像我访问

一样

非常感谢任何帮助!谢谢!!!

1 个答案:

答案 0 :(得分:0)

看起来回来的数据将日期作为数组的索引(a.k.a。'Dimension')。只需更新你的循环即可。

foreach(ga_data as $date=>$values){
    data.setValue(i, 0, $date);
    data.setValue(i, 1, $values['ga:visits']);
}

如果DataVisualization API无法处理该类型,则可能需要将日期拆分为其部分:

$str = '20110726';
$year = substr($str,0,4);
$month = substr($str,4,2);
$day = substr($str,6,2);

然后使用PHP date()函数格式化您的喜好。