2017-04-21 102 views
0

我想在谷歌堆积列图表中显示我的数组。我生成的数组看起来像这样。如何在谷歌图表中显示PHP数组

array(n) { ["5pm"]=> int(4) ["6pm"]=> int(0),... } //Monday 
array(n) { ["5pm"]=> int(5) ["6pm"]=> int(1),... } //Tuesday 
... 
array(n) { ["5pm"]=> int(4) ["6pm"]=> int(2),... } //Sunday 

数组中的条目数量需要变化(取决于数据库中的条目,但对于所有日期都是相同的)。

的JS从谷歌图表需要像这样

var data = google.visualization.arrayToDataTable([  
    ['Hours', '5pm', '6pm',...], 
    ['Mon', 4, 0], 
    ['Tue', 5, 1], 
     ... 
    ['Sun', 4, 2] 
]); 

感谢您的帮助;)

+0

你面临的问题是什么?另外,你在数组中的条目数目意味着什么?需要改变(但对于所有日子来说都是一样的)'''? – mi6crazyheart

+0

@ mi6crazyheart - 我认为这意味着所有的日子都会有相同的时间段(例如下午5点 - 晚上10点),但是这个时间段可以根据数据库中的内容而改变。 – ImClarky

回答

1

希尔是在那里我从PHP &获取数据传递的示例代码,要的JavaScript绘制图表。有一件事需要检查,所有的行应该有相同数量的元素。

所以,根据你的问题,所有“时间段”行应该有相同数量的其他元素,它不会工作。

<?php 
$chartData = array(
     array('Year', 'Sales', 'Expenses', 'Profit'), 
     array('2014', 1000, 400, 200), 
     array('2015', 1170, 460, 250), 
     array('2016', 660, 1120, 300), 
     array('2017', 1030, 540, 350) 
    ); 
$chartDataInJson = json_encode($chartData); 
?> 

<html> 
    <head> 
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
    <script type="text/javascript"> 
     google.charts.load('current', {'packages':['bar']}); 
     google.charts.setOnLoadCallback(drawChart); 

     function drawChart() { 

     var data = google.visualization.arrayToDataTable(<?php echo $chartDataInJson; ?>); 

     var options = { 
      chart: { 
      title: 'Company Performance', 
      subtitle: 'Sales, Expenses, and Profit: 2014-2017', 
      } 
     }; 

     var chart = new google.charts.Bar(document.getElementById('columnchart_material')); 

     chart.draw(data, google.charts.Bar.convertOptions(options)); 
     } 
    </script> 
    </head> 
    <body> 
    <div id="columnchart_material" style="width: 800px; height: 500px;"></div> 
    </body> 
</html> 

希望它能清除所有的疑问。

+0

这不完全是一个怀疑,但谢谢...它帮助了我很多,看看如何做到这一点...工程奇妙 –

+0

很高兴知道它为你工作。 – mi6crazyheart