我正在将 MySQL 转换为 json 并且输出提供的比我想要的要多,所以我想将它过滤为每个段的几个值。我试过寻找类似的问题,但还没有找到我真正理解得足以适应这个特定用例的问题。这是我正在做的生成 json$rows = array(); while($r = mysqli_fetch_array($result)) { $rows[] = $r; } $json_string = json_encode($rows, JSON_PRETTY_PRINT);这是输出的示例[ { "0": "1", "id": "1", "1": "2019-05-25 14:38:10", "timestamp": "2019-05-25 14:38:10", "2": "4", "category": "4" }, { "0": "2", "id": "2", "1": "2019-05-25 14:38:15", "timestamp": "2019-05-25 14:38:15", "2": "3", "category": "3" }]我想要的是更像这样的东西[ { "category": "4", "timestamp": "2019-05-25 14:38:10" }, { "category": "3", "timestamp": "2019-05-25 14:38:15" }]
2 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
您可以尝试在输出中仅获取这两列。或者,您可以使用MYSQLI_ASSOC常量来获取结果行作为关联数组。
<?php
$rows = array();
while($r = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$rows[] = array(
"category" => $r["category"],
"timestamp" => $r["timestamp"]
);
}
$json_string = json_encode($rows, JSON_PRETTY_PRINT);
?>
慕莱坞森
TA贡献1810条经验 获得超4个赞
将您的 SQL 查询从
SELECT * ...
(或者你的 SELECT 子句看起来像什么)
SELECT category, timestamp ...
那么您的 PHP 代码可能是单行代码:
$json_string = json_encode($result->fetch_all(MYSQLI_ASSOC), JSON_PRETTY_PRINT);
- 2 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消