PHP json_encode输出带引号的数字

时间:2015-12-05 10:50:17

标签: javascript php json laravel google-visualization

我有一个使用以下代码生成的数组,其中$ result是一个集合,其中Salesman是一个字符串字段,col1是一个整数字段

        $data=[];

        $arr = ($result->get());
        $j=0;
        foreach($arr as $res)
        {
            $data[$j] = [$res->shortName,$res->col1];
            $j++;
        }

当我使用像

这样的json_encode将此数组传递给Google Charts时
 var data = google.visualization.arrayToDataTable({!!  json_encode($data)  !!}

它在Javascript中呈现为:

 var data = google.visualization.arrayToDataTable([["John","700000"],["Jessa","1400000"],["Mercy ","1100000"],["William","780000"],["Thomas","550000"]]
                  );

正如您所看到的,整数也会呈现为带引号的字符串。有什么方法可以避免这种情况吗?

1 个答案:

答案 0 :(得分:1)

我认为您只需要在PHP中转换值的类型,如下所示:

$data[$j] = [$res->shortName, intval( $res->col1 ) ];   

这样,您的所有$res->col1值都将存储为int。如果您想要浮点值,只需使用floatval而不是intval,如下所示:

$data[$j] = [$res->shortName, floatval( $res->col1 ) ];