dongyou26216708 2016-05-23 21:57
浏览 81
已采纳

从PHP创建JavaScript数组 - 方括号和花括号

I am trying to pass code from my PHP backend to the google-chart JavaScript API. I have had success using PHP’s json_encode(), for passing arrays of numbers and strings. For simple data arrays json_encode() works just fine:

<?php $data = [['Series1', 'Series2'], [0, 1], [2, 3], [3, 4]]; />
<script>
var data = <?php echo(json_encode($data));?>;
</script>

But, the Google Charts API requires that row-parameters be passed as objects in {curly braces}.

Here is the JavaScript array I am trying to produce:

var data = [
    ['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General',
     'Western', 'Literature', { role: 'annotation' } ],
    ['2010', 10, 24, 20, 32, 18, 5, ''],
    ['2020', 16, 22, 23, 30, 16, 9, ''],
    ['2030', 28, 19, 29, 30, 12, 13, '']
];

The trouble is producing the {role: 'annotation'} bit in PHP. Any suggestions?

  • 写回答

2条回答 默认 最新

  • doudui2229 2016-05-23 22:01
    关注

    This should do the trick:

    $data = [['Series1', 'Series2', ['role'=>'annotation']], [0, 1], [2, 3], [3, 4]]; 
    

    You can create objects in php by creating a new stdClass, but an dictionary (key => value array) is converted to JSON the same way (with curly brackets). This would work as well:

    $object = new stdClass();
    $object->role = 'annotation';
    
    $data = [['Series1', 'Series2', $object], [0, 1], [2, 3], [3, 4]];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多