我正在尝试输出以下PHP脚本以输出不包含值周围的撇号的JSON数组,因为它们是数字。
使用下面的代码,我不断获得以下输出:
[{"name":"person1","sumValue":"200"},{"name":"person2","sumValue":"100"},{"sumTotal":"300"}]
以下是我当前拥有的PHP脚本,该脚本创建了上面看到的数组。数字周围不应带有“”,而应看起来像这样
[{"name":"person1","sumValue":200},{"name":"person2","sumValue":100},{"sumTotal":300}]
我可以在脚本中进行哪些更改以获得此结果?
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT name, SUM(value) as numvalue
FROM Table1
LEFT JOIN Table2 USING(DevName)
WHERE name <> ''
and name is not null
GROUP BY name";
if ($result = mysqli_query($con, $sql)) {
$resultArray = array();
$tempArray = array();
// you want an array of objects, so create an object to sum the sub totals
$total = new stdClass;
$total->sumTotal = 0;
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($resultArray, $tempArray);
$total->sumTotal = bcadd($total->sumTotal, $row->numvalue);
}
$resultArray[] = $total;
echo json_encode($resultArray);
}
mysqli_close($con);
您可以在对json_encode
方法的调用中使用options参数来更改编码。根据文档json_encode
:
编码受提供的选项的影响,另外,浮点值的编码取决于serialize_precision的值。
因此,根据文档,我们具有常量JSON_NUMERIC_CHECK
:
将数字字符串编码为数字。自PHP 5.3.3起可用。
您的代码将是:
$resultArray[] = $total;
echo json_encode($resultArray,JSON_NUMERIC_CHECK);
您可以在此处找到完整的文档:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句