2017-01-23 62 views
1

我想创建使用json的谷歌折线图。按照此页面Building array and formatting JSON for Google Charting API行必须类似于无法打印多维数组使用谷歌图表json

$array['rows'][] = array('c' => array(array('v'=>'20-01-13'), array('v'=>22))); 

用于json编码。 我当前的代码是

[email protected]::getSettings(); 
$query=$connectDb->prepare("SELECT timestamp, tottrdqty FROM {$database} WHERE symbol IN(?,?) AND series=? AND timestamp BETWEEN ? AND ? ORDER BY timestamp AND symbol"); 
$query->bind_param('sssss',$code,$code2,$series,$firstDate,$lastDate); 
$query->execute(); 
$result=$query->get_result(); 
$query->close(); 
$connectDb->close(); 

while ($row =mysqli_fetch_assoc($result)) { 

    $array[$row['timestamp']][] = $row['tottrdqty']; 

} 

/*foreach ($array as $date => $records) 
{ echo $date . '<br />'; 
     foreach ($records as $record) 
       { echo $record . '<br />'; } 

}*/ 

$json_array=[]; 
$json_array['cols'][] = array('type' => 'date'); 
$json_array['cols'][] = array('type' => 'number'); 
$json_array['cols'][] = array('type' => 'number'); 
foreach ($array as $date => $records) 
{ 


    $json_array['rows'][] = array('c' => array(array('v'=>"$date"), 
foreach ($records as $record){ 
array('v'=>"$record"), 
}  
     )); 
    } 

print json_encode($json_array);` 

如果我删除第二的foreach一切工作正常howwver我没有收到在阵列的数量。任何建议?

回答

1

尝试在添加到'rows'之前保存行数组,例如,

$json_array=[]; 
$json_array['cols'][] = array('type' => 'date'); 
$json_array['cols'][] = array('type' => 'number'); 
$json_array['cols'][] = array('type' => 'number'); 
$json_array['rows'] = array(); 
foreach ($array as $date => $records) { 
    $row_array = array(array('v'=>"$date")); 
    foreach ($records as $record) { 
    $row_array[] = array('v'=>$record); 
    } 
    $json_array['rows'][] = array('c' => $row_array); 
} 

print json_encode($json_array); 

另外,为了使它在google上更容易,建议不要将行值包含在引号中,例如,

array('v'=>$record)

array('v'=>"$record")

+0

它就像一个魅力。非常感谢。有一个分号缺少添加它。 – DAKSH