我正在尝试将数据从 PHP 数组导入到 JS 谷歌线图...一旦我能够弄清楚如何回显
结果,我将能够完成它。结果应该是这样的:
data.addRows([
[new Date(2014, 0), -.5, 5.7],
[new Date(2014, 1), .4, 8.7],
[new Date(2014, 2), .5, 12],
[new Date(2014, 3), 2.9, 15.3],
[new Date(2014, 4), 6.3, 18.6],
[new Date(2014, 5), 9, 20.9],
[new Date(2014, 6), 10.6, 19.8],
[new Date(2014, 7), 10.3, 16.6],
[new Date(2014, 8), 7.4, 13.3],
[new Date(2014, 9), 4.4, 9.9],
[new Date(2014, 10), 1.1, 6.6],
[new Date(2014, 11), -.2, 4.5]
]);
我目前正在对这样的数组使用 JSON_ENCODE
:
$data = array("[new Date(2014, 0), -.5, 5.7],', '[new Date(2014, 1), .4, 8.7],");
json_encode($data);
我最终将能够使用它从数据库中提取数据,并且我正在尝试回显如下结果:
data.addRows([
<?
echo str_replace('"', '', json_encode($data));
?>
]);
问题是,什么都不起作用?有人知道我在这里可能做错了什么吗?
最佳答案
您应该输出时间戳,可能以毫秒为单位,因为这是 Javascript 支持的
<?php
$data = array(
array(
mktime(0, 0, 0, 1, 1, 2014) * 1000,
-0.5,
5.7
),
array(
mktime(0, 0, 0, 2, 1, 2014) * 1000,
0.4,
8.7
)
);
?>
现在你只需回显它,它就会神奇地变成一个由数组组成的 JavaScript 数组
data.addRows(<? echo json_encode($data); ?>);
大多数插件都会接受时间戳,如果由于某种原因您必须拥有日期对象,您可以这样做
var result = <? echo json_encode($data); ?>;
result.forEach(function(arr) {
arr[0] = new Date(arr[0]);
});
data.addRows(result);
关于javascript - 使用 json_encode 进行 Google 图表显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34483252/