javascript - HighCharts,Json 格式

标签 javascript php jquery json highcharts

所以我尝试将 highcharts 与饼图钻取选项一起使用。 使用静态数据,这是完美的。但是,由于我想使用饼图作为报告形式,理想情况下它需要使用动态数据运行。

顶层数据由请求组成。每个请求都由后续任务组成。

这是我用来检索任务和请求的 php。

foreach($getRequests as $key=> $val){
    $timeArr = explode(':', $val['duration']);
    $decTime = ($timeArr[0]) + ($timeArr[1]/60); // this is purely to convert hh:mm to decimal time

    $pieData['name'] = $val['name'];
    $pieData['y'] = $decTime;
    $pieData['drilldown'] = $key;
    $pie[]=$pieData;
    // This creates the first level of data which the $pie[] array gives the correct format, so when json_encode is applied, the data is usable


    $getTasks = $task->getReportTasks($user, $status, $key, $dateRange, $date);

    foreach($getTasks as $taskKey => $taskVal){
        $pieTasks['id']=$key;
        $pieTasks['name'] = "Tasks";
        $timeArrTask = explode(':', $taskVal['duration']);
        $decTimeTask = ($timeArrTask[0]) + ($timeArrTask[1]/60);

            $pieTasks['data'] = array($taskVal['name'], $decTimeTask);
            $pie2[] = $pieTasks;
        }
}

但是,通过将相同的逻辑应用于任务并使用 json_encode,我最终得到以下结果。

[
 {"id":25684
 ,"name":"Tasks"
 ,"data":["test task1",3]
 }
,{"id":25684
 ,"name":"Tasks"
 ,"data":["testtask2",14.383333333333]
 }
,{"id":25689
 ,"name":"Tasks"
 ,"data":["testtask3",1]}
]

但我需要的格式是针对具有相同请求 ID 的任务,“id”字段包含在同一数据字段中。 就像这样

[
{"id":25684
 ,"name":"Tasks"
 ,"data":[
         ["test task1",3]
        ,["testtask2",14.383333333333]
         ]
 }
,{"id":25689
 ,"name":"Tasks"
 ,"data":[
         ["testtask3",1]
         ]
}
]

由于 testtask2 具有相同的 id,因此它包含在相同的数据字段中。 我希望这是有道理的,任何人都可以提供帮助,以便我能够正确地构建它,我将不胜感激。

最佳答案

未测试,但尝试用以下代码替换最后一个 foreach:

$pieTasks['id'] = $key;
$pieTasks['name'] = "Tasks";
$pieTasks['data'] = array();
foreach($getTasks as $taskKey => $taskVal){
    $timeArrTask = explode(':', $taskVal['duration']);
    $decTimeTask = ($timeArrTask[0]) + ($timeArrTask[1]/60);

    $pieTasks['data'][] = array($taskVal['name'], $decTimeTask);
}
$pie2[] = $pieTasks;

关于javascript - HighCharts,Json 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22288765/

相关文章:

javascript - VueJS 扩展组件 : remove parent's property

javascript - 用JQuery获取几个表的运行余额

javascript - 如何在更改时从下拉列表中打印第一个元素?

php - 您如何使用脚本语言(PHP、Python 等)来提高您的生产力?

php - SyntaxError : JSON. 解析:意外字符

javascript - jQuery animate to transparent - 更简单的解决方案?

javascript - 有没有可能一个元素只监听点击事件而忽略鼠标移动等事件?

javascript - Should.js 在单个属性上链接多个断言

javascript - 我如何测试浏览器将视频用作 Canvas 源的能力

php - 在 Firebase 中使用 PHP 进行身份验证并与 JS 交互