2017-01-23 4 views
1

jsonを使用してGoogleの折れ線グラフを作成しようとしています。このページの通りBuilding array and formatting JSON for Google Charting API行は次のようにする必要があります。google chart jsonのforeachを使用して多次元配列を印刷できません

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

for json encode私は2番目のforeachすべては私が配列に番号が届かない細かいhowwverの作品削除した場合 私の現在のコードは

[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);` 

です。なにか提案を?

答えて

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

関連する問題