【问题标题】:PHP json_encode outputs numbers with quotes [duplicate]PHP json_encode输出带引号的数字[重复]
【发布时间】:2015-12-05 10:50:17
【问题描述】:

我有一个使用以下代码生成的数组,其中 $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"]]
                  );

如您所见,整数也被呈现为带引号的字符串。有什么办法可以避免吗?

【问题讨论】:

  • 转换为 int : (int)$res->col1
  • 你怎么知道这些字段是整数,而不是字符串?

标签: javascript php json laravel google-visualization


【解决方案1】:

我认为你只需要在 PHP 中转换你的值的类型,像这样:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2014-02-28
    • 1970-01-01
    相关资源
    最近更新 更多