我正在尝试从数据库中获取一些数据,并尝试创建一个新的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。
答案 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)
}
}