我使用 php foreach 函数按具有相同值的对象对我的表进行分组$data = json_decode($geo, true);$out = [];foreach($data as &$element) { $out[$element['id']][] = [ 'lng' => $element['lng'], 'lat' => $element['lat'], 'time' => $element['time'] ];};$geo = json_encode($out);后来我得到了这个结果"[{"1":[{"lng":134.94157,"lat":36.871337,"time":1502159287}],"2":[{"lng":134.94157,"lat":34.598832,"time":1502211838}],"3":[{"lng":131.225,"lat":37.101667,"time":1502144333},{"lng":131.24,"lat":37.123333,"time":1502144343}]}]"现在我希望我的数据是这样的[[{"lng":134.94157,"lat":36.871337,"time":1502159287}],[{"lng":134.94157,"lat":34.598832,"time":1502211838}],[{"lng":131.225,"lat":37.101667,"time":1502144333},{"lng":131.24,"lat":37.123333,"time":1502144343}]]我怎样才能做到这一点?
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
首先,json_decode()您的初始 JSON 数据。然后,移动到解码数据中的第一个索引,并在array_values()的帮助下仅选择跳过键的数组值的值。
<?php
$prev_json = '[{"1":[{"lng":134.94157,"lat":36.871337,"time":1502159287}],"2":[{"lng":134.94157,"lat":34.598832,"time":1502211838}],"3":[{"lng":131.225,"lat":37.101667,"time":1502144333},{"lng":131.24,"lat":37.123333,"time":1502144343}]}]';
$data = json_decode($prev_json,true);
$new_json = json_encode(array_values($data[0]));
echo $new_json;
演示: https : //3v4l.org/bFmYn
更新:查看更新后的代码,您可以删除$element['id']from$out[$element['id']]并使其$out[] = [..rest of your code..]正常工作。
- 1 回答
- 0 关注
- 118 浏览
添加回答
举报
0/150
提交
取消