[英]PHP JSON Array - how to modify a json code Group by the same value
我使用 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}]
]
我怎樣才能做到這一點?
首先, 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
更新:查看更新后的代碼,您可以從$out[$element['id']]
刪除$element['id']
$out[$element['id']]
並將其設為$out[] = [..rest of your code..]
它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.