如何在PHP中为谷歌图表创建数组


How to create array in PHP for google charts

我想用PHP创建一个数组,用于Google Chart。

这是我尝试过的代码,但不起作用。

其中Y=$r,X=$X_n2;

for($r=1; $r<=4; $r++){
  for($i=1; $i<10; $i++){
    $x_n_1=$i+1;
    $x_n=$i;
    $x_n_2=$r*$x_n*(1-$x_n);
   echo $x_n_2.'<br>' ; 
  }
} 

这是我想要的阵列:

$data = google.visualization.arrayToDataTable([
            ['Y', 'X', ],
            ['1',0],
            ['',-2],
            ['',-6],
            ['',-12],
            ['',-20],
            ['',-30],
            ['',-42],
            ['',-56],
            ['',-72],
            ['2',0],
            ['',-6],
            ['',-18],
            ['',-36],
            ['',-60],
            ['',-90],
            ['',-126],
            ['',-168],
            ['', -216],
           ...

有没有办法自动做到这一点?

这将创建一个PHP数组:

for($r=1; $r<=4; $r++){
  for($i=1; $i<10; $i++){
     $chart[i+1] = array($i,$r*$i*(1-$i));
   }
 }

我不确定元素方程是否正确,但你应该明白。

要在PHP中创建要在JavaScript中使用的数组:
此代码经过测试

    $js = 'var chart = [';   // start JavaScript array
    for($r=1; $r<=4; $r++){
      for($x=1; $x<10; $x++){
         $y = $r*$i*(1-$i);
         $js .= "[$x,$y],";    // append set of array elements
       }
     }
     $js = substr($js,0,-1) . "];'n";  // remove last comma, close array, end line
    echo <<<EOT    // add the array ($js) to JavaScript
    <script type="text/javascript"> //<![CDATA[
    $js
    //]]>
    </script>
    EOT;

必须删除echo <<<EOT之后的注释,EOT之后的行上不允许有任何内容,甚至不允许有空格

//<![CDATA[//]]>不是注释,它们用于告诉HTML解析器不要将JavaScript解析为HTML。我使用它们来消除W3C HTML标记验证器报告的错误。

结果:

<script type="text/javascript"> //<![CDATA[
var chart = [[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0]];
//]]>
</script>