从Json_encode结果中删除双引号

时间:2016-02-24 12:33:14

标签: php arrays json string

我正在尝试从数据库中获取一些数据,并尝试创建一个新的json文件。但是,在我的输出中,我在数组中得到双引号。

我在Stack Overflow上尝试了很多解决方案但到目前为止没有成功。帮我把它删除。

   $to=array("name" => "Today","data" => $count1);
   $yes=array("name" => "Yesterday","data" => $count2);
   $ab=array($to,$yes);
   $y=array("format" => "percent");
   $z=array("labels" => $ti);

  $json=json_encode(array("series" => $ab,"y_axis" => $y,"x_axis" => $z));

     $fp = fopen('data.json', 'w');
      fwrite($fp, $json);
     fclose($fp);

当前输出:

{
    "series": [
        {
             "name":"Today","data":["123","123","123"]
        }
    ],
    "y_axis": {
        "format":"percent"
    },
    "x_axis": {
        "labels": ["00:00","00:00","00:00"]
    }
}

我不需要123左右的双引号。 00:00。

3 个答案:

答案 0 :(得分:1)

试试这个:

如果没有值,请使用floatval($var);参考:http://php.net/manual/en/function.floatval.php

当前输出:

{"series":[{"name":"Today","data":["123","123","123"]}], "y_axis":{"format":"percent"},"x_axis":{"labels":["00:00","00:00","00:00"]}}

使用"123","123","123"处理floatval($var);  ["00:00","00:00","00:00"]将以双引号作为字符串。

答案 1 :(得分:0)

尝试将所有整数值转换为整数(您可以使用floatval()函数强制转换为浮点数):

$to=array("name" => "Today","data" => (int)$count1);

<击> 编辑: 我错过了$count1是一个数组。您可以将数组的所有元素强制转换为整数。

function castArrayOfStingsToArrayOfIntegers(&$array){
    foreach ($array as $key => $var) {
        $array[$key] = (int)$var;
    }
}

castArrayOfStingsToArrayOfIntegers($count1)

您可以使用任何其他方式遍历元素。如果阵列中有很多值,请考虑它会对性能产生最小的影响。你应该考虑是否真的需要这个值作为整数,如果这是投射它们的正确位置。在构建$count1和其他类似数组时,最好将它们强制转换。

第二次编辑: 如果您有很多项目,请记住,使用(int)的强制转换比intval()功能快得多(大约2倍)。

答案 2 :(得分:0)

您可以使用array_map$count1变量转换为整数,如下所示:

$to = array("name" => "Today","data" => array_map('intval',$count1));

[概念证明]

<?php

$count1 = array("1","2","00:00","10");


$to = array("name" => "Today","data" => array_map('intval',$count1));
var_dump($to);
?>

<强>结果:

array(2) {
  ["name"]=>
  string(5) "Today"
  ["data"]=>
  array(4) {
    [0]=>
    int(1)
    [1]=>
    int(2)
    [2]=>
    int(0)
    [3]=>
    int(10)
  }
}