Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将MySql查询结果转换为正确的JSON数据_Php_Mysql_Json - Fatal编程技术网

Php 将MySql查询结果转换为正确的JSON数据

Php 将MySql查询结果转换为正确的JSON数据,php,mysql,json,Php,Mysql,Json,我想用计算机可视化我的数据。但我无法从MySql中获得适当的数据结构 我当前的查询结果为: array(6){ [0]=> array(3){["id"]=>"1" ["count"]=>"6" ["day"]=>"15-01-01"} [1]=> array(3){["id"]=>"2" ["count"]=>"3" ["day"]=>"15-01-01" } [2]=> array(3){["id"]=>"3

我想用计算机可视化我的数据。但我无法从MySql中获得适当的数据结构

我当前的查询结果为:

 array(6){ 
   [0]=> array(3){["id"]=>"1" ["count"]=>"6" ["day"]=>"15-01-01"} 
   [1]=> array(3){["id"]=>"2" ["count"]=>"3" ["day"]=>"15-01-01" }
   [2]=> array(3){["id"]=>"3" ["count"]=>"1" ["day"]=>"15-01-01" } 
   [3]=> array(3){["id"]=>"1" ["count"]=>"6" ["day"]=>"15-01-02" } 
   [4]=> array(3){["id"]=>"2" ["count"]=>"4" ["day"]=>"15-01-02" }
   [5]=> array(3){["id"]=>"3" ["count"]=>"6" ["day"]=>"15-01-02" } 
} 
而谷歌图表需要以下格式:

   var data = google.visualization.arrayToDataTable([
    ['Date', '15-01-01', '15-01-02', { role: 'annotation' } ],
    ['1', 6, 6,],
    ['2', 3, 4,],
    ['3', 1, 6,],
  ]);
如何将数据转换为适当的格式

更新

我试过这个:

$dateArray= array();
$output= "var data = google.visualization.arrayToDataTable([";
$output .= "['Date',";
foreach($mySqlResult as $val) {
   if ( in_array($val['day'], $dateArray) ) {
           continue;
        }
        $dateArray[] = $val['day'];
        $output .= "'".$val['day']."',";
    }
    $output .= " { role: 'annotation' } ],";

    foreach($mySqlResult as $val) {
        $output .= "['".$val['id']."',".$val['count']."],";
    }
    $output .= "]);";
这给了我以下的结果:

  "var data = google.visualization.arrayToDataTable(
       [['Date','15-01-01','15-01-02', { role: 'annotation' } ], 
        ['1',6,],['2',3,],['3',1,],['1',6,],['2',4,],['3',6,],]);"
仍然不是所需要的。如何为所有计数的每个id创建行:

 ['1', 6, 6,],['2', 3, 4,],['3', 1, 6,],

试试这个,它可能对你有帮助。我已经用php格式化了数组,以获得演示脚本所需的输出。您只需要正确使用循环

<?php
$data = array(
   0=> array("id"=>"1","count"=>"6","day"=>"15-01-01"),
   1=> array("id"=>"2","count"=>"3","day"=>"15-01-01"),
   2=> array("id"=>"3","count"=>"1","day"=>"15-01-01"), 
   3=> array("id"=>"1","count"=>"6","day"=>"15-01-02"), 
   4=> array("id"=>"2","count"=>"4","day"=>"15-01-02"),
   5=> array("id"=>"3","count"=>"6","day"=>"15-01-02"), 
);

$output= "var data = google.visualization.arrayToDataTable([";
$output .= "['Date',";
foreach($data as $val) {
    $output .= "'".$val['day']."',";
}
$output .= " { role: 'annotation' } ],";

foreach($data as $val) {
    $output .= "['".$val['id']."',".$val['count'].",6,''],";
}
$output .= "]);";

echo $output;
?>

到目前为止你都试了些什么?你能展示一下你的代码吗?谷歌的名字是什么charts@SharmaVikram我添加了Google柱形图的链接,您需要在PHP中操作输出,你会发现MySql很难以谷歌图表所需的正确格式输出数据。这是一个很好的起点——我没有否决你的答案,但这似乎是最令人毛骨悚然的答案。你需要注意那些
大括号
,而你只需在PHP中创建一个数组,然后简单地使用
json\u encode
@Uchiha我试过他的答案。我认为这有助于我更接近预期的产出。但仍然不是我所需要的。我不是很精通PHP。您能告诉我如何在所需的结构中创建和编码数组吗?