当前位置: 首页 > 面试题库 >

PHP编码JSON(二维数组)

卢文博
2023-03-14
问题内容

我正在查询返回字段(message_type和百分比)的表。我使用PHP编码json数据,这是我的方法

$json = array();
while ($row = odbc_fetch_array($rs)) {
  $json[][] = $row;
}
echo json_encode($json);

输出:

[ [ { "message_type" : "bullying",
      "percentage" : "60"
    } ],
  [ { "message_type" : "cheating",
      "percentage" : " 14"
    } ],
  [ { "message_type" : "Stress",
      "percentage" : "16"
    } ],
  [ { "message_type" : "Gang",
      "percentage" : "7"
    } ]
]

如您所见,json_encode函数正在添加花括号,引号和对象键名称。

我想要的是将json仅解析为二维数组,这是所需的输出:

[
  ["bullying", 60],
  ["harrassment", 9],
  ["cheating", 14],
  ["Stress", 16],
  ["Gang", 7]
]

我也尝试手动对其进行编码,但无法获得所需的结果。


问题答案:

PHP
json_encode()使用一定数量的魔术来确定给定的矢量是编码为JSON对象还是数组,但是简单的规则是:如果数组具有连续的,零索引的数字键,则它将被编码为数组。任何其他向量(对象或关联数组)将被编码为对象。

因为您使用odbc_fetch_array(),所以结果行将作为关联数组返回,且键为列名。要获得结果,您需要3个选项:

将结果行通过array_values()

$json[] = array_values($row);

手动构造单个数组:

$json[] = array($row['message_type'], $row['percentage']);

也许最好的选择是改为使用odbc_fetch_row()它,它会立即返回索引数组:

while ($row = odbc_fetch_row($rs)) {
    $json[] = $row;
}


 类似资料:
  • 目前有 2 种类型的二维码: 临时二维码,是有过期时间的,最长可以设置为在二维码生成后的 30天后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景 永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。 创建临时二维码 $result = $app->qrcode->temporary('foo',

  • BK.QRCode 二维码模块 二维码模块,可以将指定的字符串生成一张二维码图片,保存在指定位置。 makeQRCodeToFile(object) 生成二维码到指定位置的文件,异步接口 函数参数object: 属性名 类型 是否必填 说明 path string 是 要保存的位置,以GameSandBox://开头 content string 是 二维码内容 config Object 否 二

  • 二维码 产品简介 通过京东APP扫一扫功能,扫码唤起京东小程序,方便用户访问小程序。二维码支持京东小程序平台二维码、普通二维码、多码合一。 开放标准 对所有入驻小程序的企业开放。 获取小程序二维码 通过小程序开发者后台接口可以获取小程序的二维码,扫描该二维码可以直接打开小程序对应的页面 普通二维码 可通过第三方生成二维码工具,将小程序的openapp唤起链接生成标准的二维码。 openapp 协议

  • 本文向大家介绍PHP 二维数组和三维数组的过滤,包括了PHP 二维数组和三维数组的过滤的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 下面一段代码给大家介绍php三维数组变二维数组 关于PHP 二维数组和三维数组的过滤小编就给大家介绍这么多,希望对大家有所帮助!

  • 问题内容: 我想用如下的php编码功能获取json 我希望输出json是这样的 但输出json如下所示 当您意识到结尾处有逗号时,我想将其删除,以便使用正确的json语法。如果删除了多个结果时json会像这样生成,并且语法也是错误的,则删除json语法 希望每个人都明白我的意思,任何想法都将不胜感激 问题答案: 如果我是你,我不会每个单独的数组,而是将数组合并在一起,然后在最后合并数组。下面是使用

  • 本文向大家介绍PHP 编码JSON字符串,包括了PHP 编码JSON字符串的使用技巧和注意事项,需要的朋友参考一下 示例 该json_encode函数会将一个PHP数组(或者,从PHP 5.4开始,一个实现该JsonSerializable接口的对象)转换为JSON编码的字符串。如果成功,则返回JSON编码的字符串;如果失败,则返回FALSE。 在编码期间,PHP数据类型string,intege