如何在Json对象中转换sql查询结果{“timestamp”:value}

时间:2017-07-11 11:01:06

标签: php mysql json codeigniter

我想使用Cal-Heatmap来显示数据,我当前的sql结果以

的形式返回

[ { "dateStampSecs": "1499637600", "value": "1" } ]

但我想要

[ { "1499637600" : 1 } ]

如何将它们粘在一起?

我正在使用Codeigniter,下面是我的sql:

public function get_calData(){

        $this->db->select('unix_timestamp(STR_TO_DATE(date_start, "%Y-%m-%d")) dateStampSecs,count(*) as value');
        $this->db->from('calendar');
        $query = $this->db->get()->result();


        print json_encode($query,JSON_PRETTY_PRINT);
    }

4 个答案:

答案 0 :(得分:2)

$dateStampSecs = array_column($query, "dateStampSecs");
$value = array_column($query, "value");
$result = array_combine($dateStampSecs, $value);
print json_encode($result,JSON_PRETTY_PRINT);

答案 1 :(得分:0)

试试这个

$finalData='';
foreach ($query as $data){
    $finalData[][$data['dateStampSecs']]=$data['value'];
}
$finalData=json_encode($finalData);
dd($query,$finalData);     

它将输出为

enter image description here

答案 2 :(得分:0)

你必须像下面的

一样回应结果
echo json_encode($query);

出口();

答案 3 :(得分:0)

希望它能运作

 $query = json_decode($query ,true);
    $query = [$query['dateStampSecs']=>$query['value']];
    dd(json_encode($query));`