PHP 数组和 Google Analytics V3 API

标签 php multidimensional-array google-analytics-api

我正在使用 Google Analytics V3 PHP Oauht API。在 Google Analytics API 示例中使用 Simple.php 时,数据以 PHP 数组的形式返回。我正在使用以下调用来获取某些特定数据的更详细答案。效果很好。

$ids = "ga:xxxxxx";
$start_date = "2011-01-01";
$end_date = "2011-11-30";
$metrics = "ga:visits,ga:pageviews";
$dimensions = "ga:browser";
$optParams = array('dimensions' => $dimensions);
$data = $service->data_ga->get($ids,$start_date,$end_date,$metrics,$optParams); 

数组的输出是

       Data

Array
(
    [kind] => analytics#gaData
    [id] => https://www.googleapis.com/analytics/v3/data/ga?ids=ga:xxxxxxx&dimensions=ga:browser&metrics=ga:visits,ga:pageviews&start-date=2011-01-01&end-date=2011-11-30&start-index=1&max-results=1000
    [query] => Array
        (
            [start-date] => 2011-01-01
            [end-date] => 2011-11-30
            [ids] => ga:xxxxxxxx
            [dimensions] => ga:browser
            [metrics] => Array
                (
                    [0] => ga:visits
                    [1] => ga:pageviews
                )

            [start-index] => 1
            [max-results] => 1000
        )

    [itemsPerPage] => 1000
    [totalResults] => 220
    [selfLink] => https://www.googleapis.com/analytics/v3/data/ga?ids=ga:xxxxx&dimensions=ga:browser&metrics=ga:visits,ga:pageviews&start-date=2011-01-01&end-date=2011-11-30&start-index=1&max-results=1000
    [profileInfo] => Array
        (
            [profileId] => xxxxx
            [accountId] => xxxxx
            [webPropertyId] => UA-xxxxxx-x
            [internalWebPropertyId] => xxxxxxxxxx
            [profileName] => xxxxx.com
            [tableId] => ga:xxxxxxxx
        )

    [containsSampledData] => 
    [columnHeaders] => Array
        (
            [0] => Array
                (
                    [name] => ga:browser
                    [columnType] => DIMENSION
                    [dataType] => STRING
                )

            [1] => Array
                (
                    [name] => ga:visits
                    [columnType] => METRIC
                    [dataType] => INTEGER
                )

            [2] => Array
                (
                    [name] => ga:pageviews
                    [columnType] => METRIC
                    [dataType] => INTEGER
                )

        )

    [totalsForAllResults] => Array
        (
            [ga:visits] => 36197
            [ga:pageviews] => 123000
        )

    [rows] => Array
        (
            [0] => Array
                (
                    [0] => (not set)
                    [1] => 459
                    [2] => 1237
                )

            [1] => Array
                (
                    [0] => 12345
                    [1] => 3
                    [2] => 3
                )

            [2] => Array
                (
                    [0] => 440955
                    [1] => 1
                    [2] => 1
                )

            [3] => Array
                (
                    [0] => Alexa Toolbar
                    [1] => 1
                    [2] => 1
                )

            [4] => Array
                (
                    [0] => Android Browser
                    [1] => 4177
                    [2] => 9896
                )

    ....

    The [Rows] Array has 219 entries.

现在问题来了。上周我一直试图将其解析为 HTML 表或任何看起来像样的东西。我已经接近了,但这个多维数组似乎超出了我的处理能力。我还试图保持解决方案足够灵活,以处理更多指标或维度(如果也添加了它们)。我是自学的 PHP,所以也许我缺少一两个可以使这变得更容易的函数。再次感谢您提供的任何提示、想法技巧,使这项工作得以实现。


我得到了一些进一步的信息,但我没有完全按照我想要的方式格式化......也许有人可以看到我哪里出错了

$output = $service->data_ga->get($ids,$start_date,$end_date,$metrics,$optParams);
echo'<table style="text-align: left; width: 100%;" border="1" cellpadding="2"
cellspacing="2">
<tbody><tr>';
foreach ($output['columnHeaders'] as $header) {
print "<td>";
printf('%25s', $header['name']);
print "</td>";
}
print "</tr>";
foreach ($output['rows'] as $row) {
print "<td>";
foreach ($row as $column)
printf('%25s', $column);
print "</td>";
}
print "\n";
echo'
</tbody>
</table>';

我似乎仍然无法正确显示行。

最佳答案

为了让您上路,请使用

$data [rows][$i][$j][columnHeaders] [0][name]
$data [rows][$i][$j][columnHeaders] [1][name]

对于行,使用类似

$data [rows][0][1]

您必须通过增量来获取变量,例如:

var =(count($data [columnHeaders]));

   for ($i='0'; $i<=$var; $i++) {
    echo '.$data [columnHeaders] [$i][name].';}

这应该可以帮助您开始构建表格。祝你好运!

关于PHP 数组和 Google Analytics V3 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295702/

相关文章:

php - 模块互相编辑

php - 多对多数据库架构

javascript - OpenLayers 3 根据特征参数值改变点填充颜色?

python - 如何从 Python (Django) 中的 Google Analytics 获取最受欢迎的页面列表?

php - 查询 3 个表和一个 MAX

javascript - 使用 php echo 定义一个 javascript var

c++ - 访问 2D valarrays 的列切片

c++ - 速度增益 : Converting 2D array to 1D array

javascript - 带有 Tumblr 分享按钮的 Google 社交互动分析?

javascript - Google Analytics Embed API 图表未呈现