2017-01-23 31 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