【问题标题】:Generate PHP Array to mimic JSON format生成 PHP 数组以模仿 JSON 格式
【发布时间】:2016-05-24 11:20:17
【问题描述】:

我对 PHP 有点生疏,需要一些建议/帮助。

我正在尝试生成一个粗略而快速的 api,它返回一些 JSON 数据来填充 JavaScript 图表。我正在使用 PHP 来查询数据库。我可以每月/每年检索统计信息,但是我正在努力在使用 JSON_ENCODE() 之前生成 PHP 数组。

我想得到的格式是:

                   {
                    y: 'January',
                    a: 150,
                    b: 90,
                    c: 50
                }, {
                    y: 'February',
                    a: 75,
                    b: 65,
                    c: 50
                }, {
                    y: 'March',
                    a: 50,
                    b: 40,
                    c: 50
                }, {
                    y: 'April',
                    a: 75,
                    b: 65,
                    c: 50
                }

等等..一直到 12 月。 a = 2014 / b = 2015 / c = 2016。

我有一个带有$year$month 参数的数据库查询,它返回记录数。

我最初的想法是使用三个数组:

$months = array("January","February","March","April","May","June","July","August","September","October","November","December");
$years = array("2014","2015","2016");
$yearlabels = array("a","b","c");

但是我看不到如何执行此操作以返回所需格式的数组。

有什么想法吗?

【问题讨论】:

  • 为什么不直接从一开始就以所需的格式制作数组,例如:$array = [ [ "y" => "January", "a" => numA, "b" => "numB", "c" => "numC" ], [....]] 然后json_encode($array)

标签: javascript php mysql arrays json


【解决方案1】:

你可以试试

$out = [];

foreach($months as $month) {
   $arr = array();
   $arr['y'] = $month;
   foreach($yearlabels as $label) {
      $arr[$label] = '2';
   }
   $out[] = $arr;
}

echo json_encode($out);

我希望这会对你有所帮助。如果没有,请告诉我。

【讨论】:

  • 你好,Shalu,谢谢。这与一些调整完美地工作:) 知道我把事情复杂化了!
猜你喜欢
  • 1970-01-01
  • 2015-07-29
  • 2017-11-27
  • 2023-04-09
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
相关资源
最近更新 更多