1

PHPを使用してpostgreSQLからデータをプルします。これを使用して、GoogleChartdataTablesを作成します。GoogleChartsは、配列の配列を受け入れます(形式:[[data1、data2、data3]、[data4、data5、data6]]。

配列を適切にフォーマットするために、次の構文を使用します。

$GoogleChartString ="["; //opening bracket inserted
while ($row = pg_fetch_row($QueryResult)) 
{
$GoogleChartString = $GoogleChartString . "[" .implode(",", $row) . "],"; 
}
$GoogleChartString = substr($GoogleChartString,0,-1)."]";

現在、一部のフィールドは文字列であり、一部は数値です。GoogleCharts DataTablesは、文字列が一重引用符で囲まれていることを想定しています。ただし、pg_fetch_rowは文字列の前後に区切り文字を配置しません。エレガントで効率的な方法で、GoogleChartsで期待される適切な形式を生成するにはどうすればよいですか?

4

1 に答える 1

1

1つの良いニュースと1つの悪いニュース。

悪いニュース:あなたはこれまでにあまりにも多くのコードを書いていました、あなたは文字通り文字を無駄にしました、そしておそらくあなた自身のコードがあなたの邪魔をしているのであなたはこの質問を解決することを妨げました。

良いニュース:PHPで配列を作成し、json_encode関数を使用すれば、フォーマットについて気にする必要はありません。Jsonです

$googleChart = array();
while ($row = pg_fetch_row($QueryResult)) {
    $googleChart[] = $row;
}
$googleChartString = json_encode($googleChart);

APIを扱うときはいつでも、仕様(Jsonなど)を探してください。次に、その仕様がどのようにサポートされているかをPHPマニュアルで確認してください。多くの場合、すぐに使用できますが、そうでない場合は、使用できるライブラリもたくさんあります。

編集:

コードフラグメント(デモ):

$data = array(array(data1, data2, data3),array(data4, data5, data6));

echo json_encode($data);

出力:

[["data1","data2","data3"],["data4","data5","data6"]]
于 2012-06-23T22:18:03.883 に答える