我目前正在使用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;
),
));
答案 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);