javascript - 使用 json_encode 进行 Google 图表显示

标签 javascript php arrays json echo

我正在尝试将数据从 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/

相关文章:

javascript - JQuery 附加不加载切换按钮的 css

javascript - 使用 css、jquery/javascript 数组或开关创建警报

javascript - 如何制作 xpi 文件并发布我的 FireFox 扩展?

php - 如何设置 Laravel 中间件的执行顺序?

arrays - R将data.frame转换为json

javascript - 基于一个属性javascript对多维数组进行分组

javascript - 在javascript中使用通配符从字符串中获取子字符串

php - 在 WordPress 中运行主题激活功能

php - CodeIgniter 表单验证无法正常工作

android - 从 JSONArray 中移除对象