我几周以来一直在处理这段代码,而且我真的无法解决我的问题。我会尝试深入解释我的代码。
我从MySQL数据库中获取值。使用下面的代码,我能够创建一个2D PHP数组:
for ($i=2, $k=2; $i<11, $k<11; $i++, $k++) {
$roe_array[] = array( $date_y[$i] => $roe[$k]);
}
此代码的输出如下
Array
(
[0] => Array
(
[2006] => 13.83
)
[1] => Array
(
[2007] => 16.43
)
[2] => Array
(
[2008] => 14.89
)
[3] => Array
(
[2009] => 18.92
)
[4] => Array
(
[2010] => 22.84
)
[5] => Array
(
[2011] => 27.06
)
[6] => Array
(
[2012] => 28.54
)
[7] => Array
(
[2013] => 19.34
)
[8] => Array
(
[2014] => 18.01
)
)
所以,我在Json中转换了2D PHP数组
$roe_enc = json_encode( $roe_array );
输出结果为:
[{"2006":"13.83"},{"2007":"16.43"},{"2008":"14.89"},{"2009":"18.92"},{"2010":"22.84"},{"2011":"27.06"},{"2012":"28.54"},{"2013":"19.34"},{"2014":"18.01"}]
考虑到我必须在javascript脚本中绘制它,我想要一个如下对象:
[[2006, 13.83],[2007, 16.43],[2008, 14.89],[2009, 18.92], [2010, 22.84],[2011, 27.06],[2012, 28.54],[2013, 19.34],[2014, 18.01]]
你能帮我解决这个问题吗? 感谢您的支持。
答案 0 :(得分:1)
现在年份是一个键,您希望它是数组中的值,因此您必须生成一个包含基于0的索引数组而不是键值对的数组。原因是除了基于0的顺序索引之外的任何其他索引都转换为json中的键值对,因为javascript只知道基于0的数组。
为此,您应该将循环更改为:
for ($i=2, $k=2; $i<11, $k<11; $i++, $k++) {
// add an array with 2 values instead of a key-value pair
$roe_array[] = array( $date_y[$i], $roe[$k] );
// ^ add 2 elements instead of 1
}