0

これはばかげた質問かもしれません。

多次元配列を返すさまざまなクエリ (MySQL) があります。

次に、これらの配列項目を使用して、foreach ループ内の文字列に変数を設定します。

次に、この文字列を使用して javascript グラフを作成し、データの形式を完璧にする必要があります。このアイデアは、1 つの多次元配列で機能します。

でも。複数のグラフ (比較折れ線グラフなど) を作成するには、すべてのデータを同じ行で表現する必要があります。

したがって、可能であれば、行を最後に追加するのではなく、配列の行をマージする必要があります。

私の仕事をお見せします:

foreach ($graph_month as $month) :
        $first .= ' { year: "'.$month['month'].'",';
        endforeach;

        foreach ($graph_data1 as $data) :
        $second1 .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
        endforeach;

        foreach ($graph_data2 as $data) :
        $second2 .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
        endforeach;

        foreach ($graph_data3 as $data) :
        $second3 .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
        endforeach;

        foreach ($graph_data4 as $data) :
        $second4 .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
        endforeach;

        foreach ($graph_data5 as $data) :
        $second5 .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
        endforeach;

そのため、各 foreach は必要な JavaScript の小さなセクションにデータを入力していますが、これらすべての行を互いに右側に連結できるようにする必要があります。

例えば

以下を生成できるa foreach:

$first.$second1.$second2.$second3.$second4.$second5

これは可能ですか、[i] と [i++] を各変数に追加することは可能でしょうか。

4

5 に答える 5

2

まず、次のforeachような変数を生成することで、余分な行を削除できます。

foreach ($graph_month as $month):

    for ($i = 1; $i <=5; $i++) {
        //$graph_data$i becomes $graph_data1, then $graph_data2 etc.
        foreach ($graph_data$i as $data) :
            $variable .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
        endforeach;
    }

// and so on
endforeach;

このスクリプトの結果は、ご要望どおり、次のような形になります。

{year: month, title: value title: value

次のように少し調整できます。

foreach ($graph_month as $month):

    $variable .= ' { year: "'.$month['month'].'",';

    for ($i = 1; $i <=5; $i++) {
        //$graph_data$i becomes $graph_data1, then $graph_data2 etc.
        foreach ($graph_data$i as $data) :
            $variable .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
            if ($i != 5) {
                $variable .= ", ";
            }
        endforeach;
    }

    $variable .= 

// and so on
endforeach;

そしてそれは次のようになります:

{ year: month, 'title': 'value', 'title': 'value', ... }

于 2012-09-06T14:24:22.910 に答える
1

同じ変数を入れることができます:

foreach ($graph_month as $month) {
    $variable .= ' { year: "'.$month['month'].'",';
}

foreach ($graph_data1 as $data) {
    $variable .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
}

foreach ($graph_data2 as $data) {
    $variable .= ' "'.$data['title'].'": '.$data['totalValue'].' ';
}

// and so on

それらはすべてのループで連結されます。

于 2012-09-06T14:14:32.623 に答える
0

空の文字列を使用する

$string = '';

次に、この変数をすべてのforループで使用します

foreach($array1 as $value){
$string.= $value['some_data'];
}

foreach($array2 as $value){
$string.= $value['some_data'];
}

この$stringを最終結果として使用します

于 2012-09-06T14:19:09.310 に答える
0

このように for ループを使用できます...

<?php 

for($i=0;$i<count($graph_month);$i++)
{
    $all_values1 = $graph_data1[$i]['title'] . $graph_data1[$i]['totalValue'];
    $all_values2 = $graph_data2[$i]['title'] . $graph_data2[$i]['totalValue'];
    $all_values3 = $graph_data3[$i]['title'] . $graph_data3[$i]['totalValue'];
    $all_values4 = $graph_data4[$i]['title'] . $graph_data4[$i]['totalValue'];
    $all_values5 = $graph_data5[$i]['title'] . $graph_data5[$i]['totalValue'];
}

?>

ループのためにあまりにも実行する必要はありません。実行には少し時間がかかります...

このようにしてみてください....

于 2012-09-06T14:17:25.180 に答える
0

オブジェクトを正しく構築するだけで、JSON フォーマットについて PHP に心配させることができます。

<?php

$tojson = array(
     0 => array(),
     1 => array(),
     2 => array(),
     3 => array(),
     4 => array(),
     5 => array()
);

foreach($graph_month as $month)
    $tojson[0]['year'] = $month['month'];

foreach($graph_data1 as $data)
    $tojson[1][$data['title']] = $data['totalValue'];

foreach($graph_data2 as $data)
    $tojson[2][$data['title']] = $data['totalValue'];

foreach($graph_data3 as $data)
    $tojson[3][$data['title']] = $data['totalValue'];

foreach($graph_data4 as $data)
    $tojson[4][$data['title']] = $data['totalValue'];

foreach($graph_data5 as $data)
    $tojson[5][$data['title']] = $data['totalValue'];

$json = json_encode($tojson);

?>
于 2012-09-06T14:27:22.433 に答える