php - 更改文件中的 JSON 输出格式?
问题描述
我有下一个 PHP 代码,它使我成为一个 JSON 文件,其中包含我的 SQL 表中的数据:
<?php
$mysqli = new mysqli('localhost','root','xxxx','xxxx');
$myArray = array();
$result = $mysqli->query("SELECT CONCAT(Datum , ' ', Tijd) as Datum, KleurL FROM metingen order by Datum ASC limit 20");
if ($result) {
$tempArray = array();
while ($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}
echo json_encode($myArray,JSON_NUMERIC_CHECK);
$fp = fopen('resultsv2.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
}
$result->close();
$mysqli->close();
?>
JSON 文件的输出如下所示:
[{"Datum":"17-01-2019 10:31:39","KleurL":17.68},{"Datum":"17-01-2019 11:10:59","KleurL":71.76},{"Datum":"18-01-2019 08:40:41","KleurL":70.7},{"Datum":"18-01-2019 10:30:01","KleurL":71.03},{"Datum":"18-01-2019 12:05:46","KleurL":70.56},{"Datum":"18-01-2019 14:31:58","KleurL":16.2}]
但我希望看到该文件的输出如下所示:
[
[
17.68,
17-01-2019 10:31:39
],
[
18.11,
17-01-2019 11:15:20
]
]
如何在 JSON 文件中获取此输出?
解决方案
您可以使用以下json_encode() JSON_PRETTY_PRINT
选项:
json_encode($myArray,JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
编辑:
如果您使用的是 Windows,则需要使用以下内容更改回车:
$myArray = array("test" => "data");
$buffer = json_encode($myArray,JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
echo str_replace("\n", "\r\n", $buffer);
// or
$fp = fopen('resultsv2.json', 'w');
fwrite($fp, str_replace("\n", "\r\n", $buffer));
fclose($fp);
如果要将其打印到浏览器中,则需要使用<pre>
标签
<pre>
echo json_encode($myArray,JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
</pre>
推荐阅读
- python-3.x - Gramex SMTP 电子邮件问题
- git - 如何在 Git 中将本地分支转换为远程分支?
- docker-compose - AWS Elastic Beanstalk 在环境 docker-compose.yml 中找不到 ecs 任务定义(或空定义文件)
- asp.net-web-api - Web API - 无法连接到远程服务器
- angular - Angular:轻弹(半翻转)动画
- python-3.x - os.path.join 没有将 \ 放在 Users 文件夹的前面
- javascript - 如何防止手动更改查询字符串强制页面重新加载?
- node.js - Cors 将 Expressjs 中的某些域列入白名单
- node.js - 赛普拉斯通过在 cypress.json 中以某种方式将配置“pageLoadTimeout”覆盖为 1000ms 我将“pageLoadTimeout”设置为 3000m
- python - TFLite 量化模型仍然输出浮点数