I have this results from MySQL:
+-----------------+----------+-----------------+
| SUPPLIED_AMOUNT | DATE_ISO | DATE_JAVASCRIPT |
+-----------------+----------+-----------------+
| 5919.00 | 20150716 | 1436994000000 |
| 4389.00 | 20150717 | 1437080400000 |
| 12069.00 | 20150718 | 1437166800000 |
| 10220.00 | 20150720 | 1437339600000 |
| 9444.00 | 20150721 | 1437426000000 |
| 8630.00 | 20150722 | 1437512400000 |
| 9009.00 | 20150723 | 1437598800000 |
| 7324.00 | 20150724 | 1437685200000 |
| 4295.00 | 20150725 | 1437771600000 |
| 4398.00 | 20150726 | 1437858000000 |
| 3385.00 | 20150727 | 1437944400000 |
+-----------------+----------+-----------------+
I need to convert to a similar json:
[1253145600000,26.36],
[1253232000000,26.43],
[1253491200000,26.29],
[1253577600000,26.35],
[1253664000000,26.50]
This is my current PHP code:
$supplied = $service->getSupplied();
if (count($supplied)>0) {
foreach ($supplied as $key=>$value) {
$chart_data['data'][] = $value['DATE_JAVASCRIPT'].','.$value['SUPPLIED_AMOUNT'];
}
}
But it render a similar JSON:
"data": [
"1437004800000,5919.00",
"1437091200000,4389.00",
"1437177600000,12069.00",
"1437350400000,10220.00",
"1437436800000,9444.00"]
Thank you very much
Don't put ['data']
into your array, then:
$chart_data[] = array($value['DATE_JAVASCRIPT'],$value['SUPPLIED_AMOUNT']);
^^^^
And note the change to array()
. You're embedding what amounts to CSV strings in your array, which seems weird...
This part of code should work:
foreach ($supplied as $key=>$value) {
$chart_data[] = [$value['DATE_JAVASCRIPT'],$value['SUPPLIED_AMOUNT']];
}
$chart_data['data'][] = [$value['DATE_JAVASCRIPT'].','.$value['SUPPLIED_AMOUNT']];
If you don't need 'data':
$chart_data[] = [$value['DATE_JAVASCRIPT'].','.$value['SUPPLIED_AMOUNT']];
You should take part of json_encode
, by formatting your array and using this function to take back a well formatted JSON file. It will avoid some code misconception and errors :
$supplied = $service->getSupplied();
if (count($supplied)>0) {
foreach ($supplied as $key=>$value) {
$date = $value['DATE_JAVASCRIPT'];
$supplied_amount = $value['SUPPLIED_AMOUNT'];
$chart_data[] = [$date, $supplied_amount];
}
$chart_data = json_encode($chart_data);
print_r($chart_data);
# chart_data : example of JSON output
# [
# [12092016, 12.80],
# [12122016, 57.90],
# [12112016, 48.81]
# ]
}