0

このデータを変更しようとしています。これは基本的にクエリから取得されます。各セクション データを配列に結合し、結果を json にエンコードしたいと考えています。

Array ( [sectionName] => Section C [di] => Robert 2013-10-02 [timeSpent] => 1970,0,1,00,00,06 ) 
Array ( [sectionName] => Section C [di] => John 2013-10-09 [timeSpent] => 1970,0,1,02,13,06 ) 
Array ( [sectionName] => Section D [di] => Tim 2013-10-03 [timeSpent] => 1970,0,1,00,00,17 )

の中へ

{
  "type":"column",
   "name":"Section C",
   "color":"Highcharts.getOptions().colors[0]",
   "data": [{name: Robert 2013-10-02,y:Data.UTC(1970,0,1,00,00,06)},{name: John 2013-10-09,y:Data.UTC(1970,0,1,02,13,06)}]
  },
 {"type":"column",
   "name":"Section C",
   "color":"Highcharts.getOptions().colors[1]",
   "data":[{name: Tim 2013-10-03,y:Date.UTC(1970,0,1,00,00,17)}]
 }

一般に

  {
     type:"column",
     name: "SectionName",
     color: "Highcharts.getOptions().colors[1]",
     data:   [{name:di,y:Date.UTC(timeSpent)},{di2 for same section},{di3 etc}]

私はもう試した

   $i=0;
    while($row = db_fetch_array($result)) {
        //print_r($row);
        $responce[$i][type]='column';
        $responce[$i][name]=$row[sectionName];
        $responce[$i][color]='Highcharts.getOptions().colors['.$i.']';
         $responce[$i][data]= 
 //the problem comes here where i want to combine data depends on sections
 //for each section **di and timeSpent**
               '['. array(
                     name=>$row[di],
                     y=>'Date.UTC('.$row[timeSpent].')'
                ).']';

        $i++;
    } 
   return json_encode(responce); etc

これはきだ長い説明です。ご理解いただければ幸いです。

4

1 に答える 1

0

データが並べ替えられていると仮定するとsectionName、最後の行の名前の参照を保持して、新しい応答行を作成する必要があるか、現在の行にデータを追加する必要があるかを確認できます。そのアプローチの実装は次のとおりです。

$i = -1;
$responce = array();
$lastSection = NULL;
while($row = db_fetch_array($result)) {
    if($row['sectionName'] != $lastSection){
        $lastSection = $row['sectionName'];
        $i++;
        $responce[$i]['type'] = 'column';
        $responce[$i]['name'] = $row['sectionName'];
        $responce[$i]['color']='Highcharts.getOptions().colors['.$i.']';
    }
    $responce[$i]['data'][]= (object)array('name'=>$row['di'],'y'=>'Date.UTC('.$row['timeSpent'].')');
} 
return json_encode(responce);
于 2013-10-05T07:04:34.820 に答える