Php 将一种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 } ]; 。。。。。 ...

我需要获得如下所示的json格式:

[{
   "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