簡體   English   中英

HighCharts,Json格式

[英]HighCharts, Json Format

因此,我嘗試將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;

Standart JSON解析器無法解析double(14.383333333333)。 嘗試用雙引號(“ 14.383333333333”)書寫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM