Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将json过滤为特定格式(删除某些部分)_Php_Mysql_Json_Filtering - Fatal编程技术网

Php 如何将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

我正在将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"
  }
]

您可以尝试在输出中仅获取这两列。或者,您可以使用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中选择类别、时间戳;