这可能是一个愚蠢的问题,但我正在努力解决这个问题。
我需要将数据从 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/