我使用以下代码生成了一个数组,其中 $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"]]
);
正如您所看到的,整数也呈现为带引号的字符串。有什么办法可以避免这种情况吗?
最佳答案
我认为你只需要转换 PHP 中值的类型,如下所示:
$data[$j] = [$res->shortName, intval( $res->col1 ) ];
这样您的所有 $res->col1
值都将存储为 int。如果您想要浮点值,只需使用 floatval
而不是 intval
,如下所示:
$data[$j] = [$res->shortName, floatval( $res->col1 ) ];
关于javascript - PHP json_encode 输出带引号的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34103968/