将PHP数组发送给Json时,我应该删除开头的“ 0”吗?

问题描述 投票:0回答:1

我的项目是使用“ Chart.Js”创建条形图。

图表应显示一年中所有星期的记录。数据来自MySQL中的datetime列。

这是我的做法:首先,我在MySQL中的选择:$query = "SELECT datetime_start FROM table WHERE datetime_start LIKE '2020%' ORDER BY datetime_start ASC";

现在我有类似记录:2020-03-12 09:38:00

将日期分组为几周,我这样做:

while($row = $stmt->fetch()){

    $date = new DateTime($row['datetime_start']);
    $week = $date->format("W");

    $data[$week]++;
}

然后,我用[echo json_encode($data);]将其发送给JS>

[在JS中,我执行console.log(result),然后得到一个列表,其中的键表示星期,值是该星期中有多少个日期。

这是我遇到的问题!列表排序:

{10: 42, 11: 40, 12: 40, 13: 44, 14: 26, 15: 33, 16: 27, 17: 31, 18: 21, 19: 21, 20: 20, 21: 22, 22: 25, 23: 22, 24: 19, 25: 7, 26: 9, 27: 6, 28: 1, 29: 6, 30: 5, 31: 7, 32: 1, 33: 5, 34: 5, 35: 6, 36: 4, 37: 2, 38: 2, 39: 4, 40: 2, 41: 3, 42: 2, 43: 3, 44: 3, 45: 3, 46: 2, 47: 2, 48: 6, 49: 4, 50: 4, 51: 2, 52: 2, 53: 1, 01: 23, 02: 25, 03: 34, 04: 43, 05: 31, …}

第10周出现在第01周之前。这将导致我的图表看起来像这样:

enter image description here

哪种方法是解决这个问题的最佳方法?

我已经检查了Php.net中的日期时间对象,该日期时间对象的周数(format('w'))中没有前导零,但它不存在。

我是否应该使用PHP或JS删除前导零以解决此问题?我认为PHP数组从01开始是正确的,但是当我将其解码为Json时,顺序更改,而10将成为对象中的第一个键?!

编辑

我的PHP看起来不错:

Array ( [01] => 23 [02] => 25 [03] => 34 [04] => 43 [05] => 31 [06] => 37 [07] => 32 [08] => 34 [09] => 45 [10] => 42 [11] => 40 [12] => 40 [13] => 44 [14] => 26 [15] => 33 [16] => 27 [17] => 31 [18] => 21 [19] => 21 [20] => 20 [21] => 22 [22] => 25 [23] => 22 [24] => 19 [25] => 7 [26] => 9 [27] => 6 [28] => 1 [29] => 6 [30] => 5 [31] => 7 [32] => 1 [33] => 5 [34] => 5 [35] => 6 [36] => 4 [37] => 2 [38] => 2 [39] => 4 [40] => 2 [41] => 3 [42] => 2 [43] => 3 [44] => 3 [45] => 3 [46] => 2 [47] => 2 [48] => 6 [49] => 4 [50] => 4 [51] => 2 [52] => 2 [53] => 1 )

是让混乱的Json:

{10: 42, 11: 40, 12: 40, 13: 44, 14: 26, 15: 33, 16: 27, 17: 31, 18: 21, 19: 21, 20: 20, 21: 22,…}

我的项目是用“ Chart.Js”创建条形图。该图表应显示一年中所有星期的记录。数据来自MySQL中的datetime列。这是我的操作方式:首先,我的选择...

javascript php chart.js
1个回答
1
投票

不要使用关联数组,请使用索引数组。首先创建一个包含53个元素的数组,然后在循环中对其进行更新。


0
投票

由于JSON与前代保持相同的数组结构,因此您可以在将数组转换为JSON之前对其进行排序。

© www.soinside.com 2019 - 2024. All rights reserved.