2011-09-04 83 views
1

我需要你們的幫助,因爲我卡在如何從谷歌API獲得二次DATAS,並將其顯示在圖表上,讓我解釋一下:檢索數據和填充兩次

我已經成功地檢索「從谷歌Analytics(分析)API訪問」 DATAS,並告訴他們我的圖表,此代碼上:

   $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 
    ) 

然後我把這些信息在圖表上W¯¯第i:

<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 ))像我訪問

任何幫助會做非常感謝!謝謝 !!!

回答

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()函數自己的喜好。