如何获得这种类型的json图表?

时间:2014-04-26 23:51:56

标签: php arrays cakephp json

我需要像这样的json,使用过去30天的日期:

          { name: 'Manoel',
            data: [1124, 1315, 1187, 1266, 1400, 16 , 111, 132, 1110, 1235, 1369, 1640,
                1005, 1436, 2063, 3057, 4618, 6444, 9822, 1468, 2434, 2126]
        }, {
            name: 'Joaquim',
            data: [1322, 1270, 1266, 1800, 1121,1300, 1200 , 1744 , 1321 ,1244,
            5, 2225, 1350, 2120, 2150, 200, 426, 660, 869, 1060, 1605, 2471, 3322]
        }

我现在正在尝试这个:

  $arr = $this->User->find('all', array('conditions' => array('nivel' => 'admin'))); // fetch the array
    $arr1 = array();
    $porDia = array();

    foreach ($arr as $value) {
        $tmp = array();
        $datas = array();
        $tmp['name'] = $value['User']['nome'];

        for ($i=30; $i > 0; $i--) { 
        $inicioDia = date('Y-m-d 00:00:00', strtotime('today - '. $i .' days'));
        $fimDia = date('Y-m-d 23:59:59', strtotime('today - '. $i .' days'));
        $solDia = $this->Solicitation->find('count', array('conditions' => array('responsavel' => $value['User']['id'], 'data_respostajur >=' => $inicioDia, 'data_respostajur <=' => $fimDia)));

        $datas[] = $solDia;

        }

        $tmp['data'] = $datas;
        $arr1[] = $tmp;

        }
    $json = json_encode($arr1);

但我不知道还有更多其他尝试,我如何得到这种类型的json?

1 个答案:

答案 0 :(得分:0)

你设置

$arr1 = array()

每个foreach循环,你应该使用

得到最后的json表示
$json = json_encode($arr1) 

最后。

并改变

$tmp['data'] = $porDia[];

$tmp['data'] = $porDia;