如何在php中构造数据以获得正确的json结果?

时间:2017-11-10 05:47:41

标签: php arrays json d3.js

我在php工作,需要以下列格式导出json文档(如下所示)。

我知道如何使用file_put_contents($data_file, json_encode($json_array));进行实际导出,但我正在努力使用$ json_array来获得所需结果所需的格式。

我需要将最终的json文件格式化为:

{
  "2016": [
      {
        "date": "2016/01/01",
        "close": 837
      },
      {
        "date": "2016/12/01",
        "close": 769
      }
    ],
  "2015": [
      {
        "date": "2015/01/01",
        "close": 637
      },
      {
        "date": "2015/12/01",
        "close": 669
      }
    ],
  "2014": [
      {
        "date": "2014/01/01",
        "close": 537
      },
      {
        "date": "2014/12/01",
        "close": 569
      }
    ]
}

这是通过导出一个包含3个键的数组来完成的,每个键都包含一个多维数组吗?还是某种类型的对象数组?

也许我已经过度思考了这一点,但我整天都在解决这个问题,但却未能取得预期的效果。

对我而言,结构看起来像一个数组;使用2016年的(第一个)键和数组的值,但那个数组里面的内容是什么?

1 个答案:

答案 0 :(得分:1)

这很直接。只需在PHP中使用相同的级别和键创建一个数组:

$data = [
    '2016' => [
        [
            "date"  => "2016/01/01",
            "close" =>  837
        ],
        [
            "date"  => "2016/12/01",
            "close" => 769
        ],
    ],    
    '2015' => [
        [
            "date"  => "2015/01/01",
            "close" => 637
        ],
        [
            "date"  => "2015/12/01",
            "close" => 669
        ],
    ],    
    // ... and so on
];

演示:https://3v4l.org/cfHqs