Php 如何将json过滤为特定格式(删除某些部分)
我正在将MySQL转换为json,并且输出提供了比我想要的更多的内容,因此我希望将其过滤为每个段的几个值 我已经尝试过寻找类似的问题,虽然还没有找到我真正理解的足够好的东西,我可以适应这个特定的用例 下面是我生成json的步骤Php 如何将json过滤为特定格式(删除某些部分),php,mysql,json,filtering,Php,Mysql,Json,Filtering,我正在将MySQL转换为json,并且输出提供了比我想要的更多的内容,因此我希望将其过滤为每个段的几个值 我已经尝试过寻找类似的问题,虽然还没有找到我真正理解的足够好的东西,我可以适应这个特定的用例 下面是我生成json的步骤 $rows = array(); while($r = mysqli_fetch_array($result)) { $rows[] = $r; } $json_string = json_encode($rows, JSON_PRETTY_PRIN
$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"
}
]
您可以尝试在输出中仅获取这两列。或者,您可以使用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);
?>
将SQL查询从 选择*。。。 或者你的SELECT子句看起来像什么 选择类别、时间戳。。。 那么您的PHP代码可以是一行代码: $json_string=json_encode$result->fetch_allMYSQLI_ASSOC,json_PRETTY_PRINT;
您可以将查询设置为仅返回所需的字段,即从myTable中选择类别、时间戳;