使用symfony中的HighCharts在Loop中绘制图表

时间:2017-05-10 11:42:52

标签: php symfony highcharts symfony-3.1

我目前正在使用symfony中的Highcharts。当我像这样输入静态数据(array1 / array2 / array3 / array4)时,它工作正常:

title

但我需要的是在循环中输入数据,因为我有不规则数量的数组。我尝试了这个但是我收到了一个错误"意外'而#39; (T_WHILE)"我在这里错过了什么吗?

这是我的代码,使用while添加Chart的数据系列:

$ob1 = new Highchart();
$ob1->chart->renderTo('barchart');
$ob1->title->text('Chart 1');
$ob1->xAxis->categories($arrayResult);
$ob1->plotOptions->pie(array(
    'allowPointSelect'  => true,
    'cursor'    => 'pointer',
    'dataLabels'    => array('enabled' => false),
    'showInLegend'  => true
));

$ob1->series(array(array('type' => 'column','name' => 'bar1', 'data' => $array1),
                    (array('type' => 'column','name' => 'bar2', 'data' => $array2)),
                    (array('type' => 'column','name' => 'bar3', 'data' => $array3)),
                    (array('type' => 'column','name' => 'bar4', 'data' => $array4))


    ));

我也试过这个,只显示while的最后一次迭代

      $i=1;
      $number=4;

    $ob1->series(array( 
        (   
         $myarray = array();
         while($i <= $number): array_push($myarray, array(0 => 'value', 1=> $i));
          $i++;
          array('type' => 'column','name' => 'bar'.$i, 'data' => $myarray)
          endwhile;
        ),

));

1 个答案:

答案 0 :(得分:2)

您的php语句无效,语法无效。要避免此类错误,请勿在函数参数内创建循环。简化你的语法和使用时间变量,易于阅读和理解你在做什么,记住,每个优秀的开发人员总是说:&#34;分而治之?&#34; :)

$i = 1;
$number = 4;

$chartData = [];
while ($i <= $number) {
    $chartData[] = [
        'type' => 'column',
        'name' => 'bar'.$i,
        'data' => [
            'value',
            $i,
        ],
    ];
    $i++;
}
$ob1->series($chartData);