关于php的json输出格式的问题
<code> $select = $this->datas->query("select data01 from ds_meters_320114102 ORDER BY id desc limit 24"); $result = $select->result(); $datas = array(); foreach($result as $row){ $datas[] = $row; } //var_dump($datas); echo json_encode($datas); </code>
以上是我查询数据库得出的json,这个json结果输出后是这样的格式:
<code>[{"data01":"20.90"},{"data01":"20.90"},{"data01":"21.00"},{"data01":"20.90"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"20.90"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"20.90"},{"data01":"20.90"},{"data01":"20.90"},{"data01":"20.90"},{"data01":"20.90"}] </code>
可是这个数据不是我想要的,我要把这个json变成这样的格式:
<code>[20.90,20.90,21.00,20.90,21.00,21.00....] </code>
请问如何实现呢?谢谢
回复内容:
<code> $select = $this->datas->query("select data01 from ds_meters_320114102 ORDER BY id desc limit 24"); $result = $select->result(); $datas = array(); foreach($result as $row){ $datas[] = $row; } //var_dump($datas); echo json_encode($datas); </code>
以上是我查询数据库得出的json,这个json结果输出后是这样的格式:
<code>[{"data01":"20.90"},{"data01":"20.90"},{"data01":"21.00"},{"data01":"20.90"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"20.90"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"21.00"},{"data01":"20.90"},{"data01":"20.90"},{"data01":"20.90"},{"data01":"20.90"},{"data01":"20.90"}] </code>
可是这个数据不是我想要的,我要把这个json变成这样的格式:
<code>[20.90,20.90,21.00,20.90,21.00,21.00....] </code>
请问如何实现呢?谢谢
如果是数字索引的数组,那么json_encode()的返回值就是[]括住的字符串;如果是字符串索引的数组,那么json_encode()的返回值就是{}括住的字符串。
所以,解决这个问题,可以尝试:echo json_encode(array_values($datas))
楼上已经可以完美解决楼主的问题了。
解决之余,应该多问问为什么。
- JSON 怎么会这样的?
- 为什么非要用 JSON 而不用 序列化(serialize)?
如果你是带着这种疑问,百度一下问题就可以解决。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。 JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。出处
JSON基于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。出处
它一定是有自己的特点的,会了,那就永远都会了。学习一下吧 JSON 中国 | JSON 中文网
$datas[] = $row[data01];
需要你在上面的datas数组里把键data01去掉。
<code>PHP</code><code>foreach($result as $row) { $datas[] = $row['data01'] } </code>
这样就行了, 因为之前的数组里有字符串键data01所以只能生成Js对象 {"data01" : "20.90"}
才能表示键值关系。 你把$datas
换成自然索引的数组就可以了。
json_encode(array_column($datas,'data01'));
tips:php5.5才支持array_column,如果你的php版本低于这个就用上面的foreach循环吧

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储
