<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(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循环吧