Php 将一种json格式转换为另一种json格式
我需要获得如下所示的json格式:Php 将一种json格式转换为另一种json格式,php,json,Php,Json,我需要获得如下所示的json格式: [{ "month": 'JAN', "data": 1691 }, { "month": 'FEB', "data": 820 }, { "month": 'MAR', "data": 1050 }, { "month": 'APR', "data": 650 }, { "month": 'MAY', "data": 780 } ]; 。。。。。 ...
[{
"month": 'JAN',
"data": 1691
}, {
"month": 'FEB',
"data": 820
}, {
"month": 'MAR',
"data": 1050
}, {
"month": 'APR',
"data": 650
}, {
"month": 'MAY',
"data": 780
} ];
。。。。。
...
目前,使用下面给出的代码,我得到的格式如下。有没有办法把这个JSON输出转换成上面的输出。或者如何重写下面的php代码。因为我是新来php的,所以对我来说似乎很困惑。提前感谢您的宝贵帮助
<?php
include("db.php");
date_default_timezone_set('Asia/Kolkata');
$thisyear = date("Y");
$months = array();
for($i=0;$i<=12;$i++)
{
array_push($months, 0);
unset($months[0]);
}
$stack = array(
1 => 'JAN',
2 => 'FEB',
3 => 'MAR',
4 => 'APR',
5 => 'MAY',
6 => 'JUN',
7 => 'JUL',
8 => 'AUG',
9 => 'SEP',
10 => 'OCT',
11 => 'NOV',
12 => 'DEC'
);
$year[0] = 0;
$stmt = $conn1->prepare("SELECT * FROM salessummary WHERE dateoforder LIKE :key");
$stmt->execute(array('key' => "%{$thisyear}%"));
foreach ($stmt as $row) {
$month = date('m', strtotime($row['dateoforder']));
$months[intval($month)]++;
}
$high = max($months) + 10;
$datayearly = array(
'labels' => array_values($stack),
'series' => array(array(
'name' => 'series-1',
'data' => array_values($months)
))
);
$temp = json_encode($datayearly);
echo $temp;
?>
}尝试以下操作:
$datayearly = [];
for($i=1;$i <= count($months);$i++)
{
$datayearly[] = [
'month' => $stack[$i],
'data' => $months[$i]
];
}
请尝试以下操作:
$datayearly = [];
for($i=1;$i <= count($months);$i++)
{
$datayearly[] = [
'month' => $stack[$i],
'data' => $months[$i]
];
}
我会用这样的方法生成你的数组:
$datayearly=[];
foreach(array_values($stack) as $i=> $m){
$datayearly[]['month']=$m;
$datayearly[]['data']=$array_values($months)[$i];
}
我会用这样的方法生成你的数组:
$datayearly=[];
foreach(array_values($stack) as $i=> $m){
$datayearly[]['month']=$m;
$datayearly[]['data']=$array_values($months)[$i];
}
如果提供的任何解决方案对您有效。请务必接受。很抱歉延迟接受@MEGA6382如果提供的任何解决方案对您有效。请务必接受。很抱歉延迟接受@mega6382