2

データベースからレコードを取得した後に作成された配列があります。配列は次のようになります。

// $xyz array
Array
(
    [f30] => Array
        (
            [December 2012] => 71
            [November 2012] => 70
            [October 2012] => 66
        )    

    [f32] => Array
        (
            [December 2012] => 85
            [November 2012] => 83
            [October 2012] => 81
        )
)

それが単一の折れ線グラフであれば、簡単にプロットできます。ただし、複数折れ線グラフをプロットしようとすると、多くの問題が発生します。以下は、データをプロットしようとしているコードです。

PHP

$table = array();
$table['cols'] = array(
           array('label' => 'Month', 'type' => 'string')        
         );

$rows = array();
foreach($xyz as $form=>$hhh)
{        
   $table['cols'][] = array('label'=>$form, 'type'=>'number');
   foreach($hhh as $mnth=>$pt)
   {
      $temp = array();
      $temp[] = array('v' => (string) $mnth);
      $temp[] = array('v' => (int) $pt);
      $rows[] = array('c'=>$temp);
    }
}

$table['rows'] = $rows;
$jsonTable = json_encode($table);

JS

<script type="text/javascript">

    google.load('visualization', '1', {'packages':['corechart']});    
    google.setOnLoadCallback(drawChart);
    function drawChart() {
      var data = new google.visualization.DataTable(<?=$jsonTable?>);
      var options = {
           title: 'Some title',
          is3D: 'true',
          width: 800,
          height: 600
        };            
      var chart = new google.visualization.LineChart(document.getElementById('divID'));
      chart.draw(data, options);
    }
    </script>

$temp$rowsおよび配列の位置を変更して、さまざまな順列と組み合わせを試しました$table['rows']が、1 つのグラフに 2 つの線をプロットできないようです。私はおそらく配列の配置を台無しにしています。

私がなんとか得た最も近いものは、以下のようなものでした:

私が得たもの

しかし、私の期待される出力は次のようなものです 私が探しているもの

f30と と,のf31代わりに移動し、,の代わりに移動SalesExpensesOctoberNovemberDecember2004200520062007

4

2 に答える 2

2

私はそれを自分で理解しました。我が神よ!なんて安心でしょう。私はこの形式の配列を持っていなければなりませんでした:

Array
(
    [December 2012] => Array
        (
            [0] => 71
            [1] => 85
        )

    [November 2012] => Array
        (
            [0] => 70
            [1] => 83                
        )

    [October 2012] => Array
        (
            [0] => 66
            [1] => 81
        )

)

foreach残りはループと出来上がりの小さな変更でした!終了した。

于 2013-03-23T08:35:02.370 に答える