如何在html中正确使用for循环?

时间:2019-02-09 14:00:04

标签: php html charts

我有以下问题。我正在尝试使用从数据库中获取的变量来创建饼图。但是,我很难正确显示它们。

我在for循环中尝试的方式,它们在饼图中显示为单个实体,并且不会分开。

我看到它的发生是因为没有中断线,但是我不知道如何实现它。

我试图创建一堆类似$ whatever 1,任意数量1的行。但这不能可靠地工作,因为如果$ whatever [4]是存在的最后一个变量,那么试图显示$ whatever [5]会破坏我的整个工作。

function drawChart() {
            var data = google.visualization.arrayToDataTable([
                ['Task', 'Hours per Day'],
                ['<?php for($i = 1; $i < $counter1; $i++) { 
                        echo $whatever[$i]; 
                        } ?>',     
                <?php for($j = 1; $j < $counter1; $j++) { 
                        echo $whatevercount[$j]; }?>],
                        ]);

结果饼图仅是1个实体,不会分开。

Example of problem

1 个答案:

答案 0 :(得分:0)

您可以使用foreach()遍历数组,从而避免尝试访问该数组中不存在的位置。

最好的方法可能是创建一个以任务名称为键,所用时间为值的数组:

$time_spent_on_task = array();
$time_spent_on_task['Task_one'] = 2;
$time_spent_on_task['Second_task'] = 4.5;
etc...

因此您可以像这样循环遍历:

foreach ($array as $key => $value) {

    echo '['.$key.','.$value.'],';

}

这会导致这样的事情:

var data = google.visualization.arrayToDataTable([
    [{label: 'Task', type: 'string'},
    {label: 'Hours per Day', type: 'number'}],

    <?php
        foreach ($time_spent_on_task as $task => $time) {
            echo '['.$task.','.$time.'],';
        }
    ?>
]);

干净高效:)