javascript - 使用相同的键附加值 PHP MySQL D3

标签 javascript php mysql d3.js

这可能是一个愚蠢的问题,但我正在努力解决这个问题。

我需要将数据从 mysql 数据库转换为 d3 折线图。

我如何打开它:

[{"key":"Branch1","values":["21","1961"]},{"key":"Branch2","values":["21","1961"]},{"key":"Branch2","values":["22","20040"]}]

进入这个:

[{"key":"Branch1","values":["21","1961"]},{"key":"Branch2","values":[["21","1961"],["22","20040"]]}]

我有一个创建第一个结果的 PHP 函数。这是函数

function getChartData(){
$currentDate = $this->getCurrentDate();
$query = "select t2.name as 'office', DAY(t1.datetime_created) as 'day', t1.datetime_created as 'date', SUM(t1.amount) as 'amount' FROM money_main_records t1, offices t2 WHERE t1.id_branch = t2.office_id AND MONTH(t1.datetime_created) = ". $currentDate['month_number'] . " GROUP BY t2.name, DAY(t1.datetime_created)";
$result =$this->db->query($query);
$series=array();
foreach ($result->result() as $item){
  $serie= array (
     "key" => $item->office,
     "values" => array (
          $item->day,
          $item->amount
      )
  );
  array_push($series,$serie);
}
return $series;
}

非常感谢任何帮助!!!谢谢!

最佳答案

你能试试这个吗:

$data = [];
foreach ($result->result() as $item){
    // Group offices
    $data[$item->office][] = [
                  $item->day,
                  $item->amount
              ];

}

$series = [];
// Browse all offices
foreach($data as $officeKey=>$officeArrays){
    $series[] = ['key'=>$officeKey, 'values'=> $officeArrays];
}

return $series;

无法测试我的代码,它可能不是最好的解决方案,但我希望它能帮助你。

关于javascript - 使用相同的键附加值 PHP MySQL D3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31666656/

相关文章:

javascript - 如何确保在 Bootstrap 更改 radio 输入 'checked' 状态后实例化 FormData

php - 重定向到 Paypal 结帐页面

php - 元素未添加到数据库中

php - MYSQL 查询按部分加载数据,如 phpmyadmin

php - MySQL Process List - 提高性能 - 锁定问题

javascript - Protractor AngularJS 计数、复制和验证列表跨度

javascript - AmCharts 4 - 多个数据集

javascript - 为什么单击登录后我的微调器不出现?

php - 网站文字大小限制

php - 尝试执行 INSERT 命令时 PDO 不起作用