在 symfony 中使用 HighCharts 绘制带循环的图表
Draw charts with a Loop using HighCharts in symfony
我目前在 symfony 中使用 Highcharts。当我像这样输入静态数据 (array1/array2/array3/array4) 时效果很好:
$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))
));
但我需要的是在一个循环中输入数据,因为我有不规则数量的数组。我试过了,但出现错误 "unexpected 'while' (T_WHILE)" 有什么我遗漏的吗?
这是我使用 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;
),
));
我也试过了,只显示 while 的最后一次迭代
$i=1;
$number=4;
$myarray = array();
while($i <= $number):
array_push($myarray, array(0 => 'value', 1=> $i));
$i++;
$ob1->series(array (array('type' => 'column','name' => 'bar'.$i, 'data' => $myarray)));
endwhile;
您的 php 语句无效,语法无效。为避免此类错误,切勿在函数参数内创建循环。简化语法并使用时间变量,易于阅读和理解你在做什么,记住,每个优秀的开发人员总是说:"divide and conquer" :)
$i = 1;
$number = 4;
$chartData = [];
while ($i <= $number) {
$chartData[] = [
'type' => 'column',
'name' => 'bar'.$i,
'data' => [
'value',
$i,
],
];
$i++;
}
$ob1->series($chartData);
我目前在 symfony 中使用 Highcharts。当我像这样输入静态数据 (array1/array2/array3/array4) 时效果很好:
$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))
));
但我需要的是在一个循环中输入数据,因为我有不规则数量的数组。我试过了,但出现错误 "unexpected 'while' (T_WHILE)" 有什么我遗漏的吗?
这是我使用 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;
),
));
我也试过了,只显示 while 的最后一次迭代
$i=1;
$number=4;
$myarray = array();
while($i <= $number):
array_push($myarray, array(0 => 'value', 1=> $i));
$i++;
$ob1->series(array (array('type' => 'column','name' => 'bar'.$i, 'data' => $myarray)));
endwhile;
您的 php 语句无效,语法无效。为避免此类错误,切勿在函数参数内创建循环。简化语法并使用时间变量,易于阅读和理解你在做什么,记住,每个优秀的开发人员总是说:"divide and conquer" :)
$i = 1;
$number = 4;
$chartData = [];
while ($i <= $number) {
$chartData[] = [
'type' => 'column',
'name' => 'bar'.$i,
'data' => [
'value',
$i,
],
];
$i++;
}
$ob1->series($chartData);