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?
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]];
You can create an object in PHP and json_encode will create an object from that:
$myObj = new stdClass;
$myObj->role = "annotation";
Then 'json_encode($myObj);' will return the JSON object you want.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.