簡體   English   中英

PHP JSON Array - 如何按相同的值修改 json 代碼組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM