不使用JSON_NUMERIC_CHECK从数组中删除引号

时间:2013-11-21 20:58:38

标签: javascript php highcharts

我正在尝试使用highcharts绘制散点图。

Javascript代码:

<script type='text/javascript'>
\$(function () {
var chart;
\$(document).ready(function() {
   chart = new Highcharts.Chart({
        chart: {
            renderTo: '$div_id',
            type: 'scatter',
            zoomType: 'xy',                
            marginRight: 450,
            marginBottom: 75
        },
...
...
       series: [{
             name: 'name1',
             data: $data    
       }]
     });
   }); 
});
</script>";

我的PHP代码:

$data_array4 =  mysql_query("SELECT * from table", $link);
$ret1 = array();
while($item = mysql_fetch_array($data_array4)) {
    $La = $item['L'];
    $Ge = $item['G'];
    $ret1[] = array($La,$Ge);
}
$data = json_encode($ret1);

我的数据如下:

data: [["0.457","0.02"],["0.464","0.02"],["0.469","0.01"],["0.469","0.01"]]

图表没有显示,因为双引号。 如何在不使用$ data = json_encode($ ret1,JSON_NUMERIC_CHECK)的情况下删除它们,我在PHP 5.2上,不能使用该参数。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用floatval

将每个值转换为数字
$num = floatval("5.125");

http://us3.php.net/manual/en/function.floatval.php

您还可以在JavaScript中循环数组并使用parseFloat ...

var num = parseFloat("5.125");

答案 1 :(得分:1)

似乎你没有从评论中弄明白。但是,当然你需要将两个字符串转换为实数:

$La = (float) $item['L'];
$Ge = (float) $item['G'];
$ret1[] = array($La,$Ge);

否则结果列表将包含一个字符串和一个数字,从而产生JSON对象/地图而不是列表。

你的下一个问题:是的,花车是精确的,并不总是与原始的字符串表示一样短。