$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);
以上是我查询数据库得出的json,这个json结果输出后是这样的格式:
[{"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"}]
可是这个数据不是我想要的,我要把这个json变成这样的格式:
[20.90,20.90,21.00,20.90,21.00,21.00....]
请问如何实现呢?谢谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果是数字索引的数组,那么json_encode()的返回值就是[]括住的字符串;如果是字符串索引的数组,那么json_encode()的返回值就是{}括住的字符串。
所以,解决这个问题,可以尝试:echo json_encode(array_values($datas))
楼上已经可以完美解决楼主的问题了。
解决之余,应该多问问为什么。
如果你是带着这种疑问,百度一下问题就可以解决。
JSON基于两种结构:
它一定是有自己的特点的,会了,那就永远都会了。学习一下吧 JSON 中国 | JSON 中文网
$datas[] = $row[data01];
需要你在上面的datas数组里把键data01去掉。
这样就行了, 因为之前的数组里有字符串键data01所以只能生成Js对象
{"data01" : "20.90"}
才能表示键值关系。 你把$datas
换成自然索引的数组就可以了。json_encode(array_column($datas,'data01'));
tips:php5.5才支持array_column,如果你的php版本低于这个就用上面的foreach循环吧