为了账号安全,请及时绑定邮箱和手机立即绑定

如何在长 php 字符串中交换纬度和经度以用于传单折线?

如何在长 php 字符串中交换纬度和经度以用于传单折线?

PHP
三国纷争 2022-01-02 15:32:36
我得到一个 json 响应,其中包含以下格式的经纬度字符串: [39.608379, -106.450714],[39.608311,-106.450348],[39.608292,-106.450005],[39.608288,-106.449722]我的问题是传单需要颠倒纬度和经度。我无法控制 json 数据,只能操作 php 或传单 javascript 中的数据。有人有交换值的好方法吗?请注意,字符串通常比这长得多并且各不相同。
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

一个简单的 foreach 将非常简单地做到这一点


$js = '[[39.608379, -106.450714],[39.608311,-106.450348],[39.608292,-106.450005],[39.608288,-106.449722]]';

$ja = json_decode($js);


$new_arr = [];

foreach ($ja as $j){

    $new_arr[] = [$j[1], $j[0]];

}

print_r($new_arr);

结果


Array

(

    [0] => Array

        (

            [0] => -106.450714

            [1] => 39.608379

        )


    [1] => Array

        (

            [0] => -106.450348

            [1] => 39.608311

        )


    [2] => Array

        (

            [0] => -106.450005

            [1] => 39.608292

        )


    [3] => Array

        (

            [0] => -106.449722

            [1] => 39.608288

        )


)


查看完整回答
反对 回复 2022-01-02
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

在 php 中


$json = '[[39.608379, -106.450714],[39.608311,-106.450348], [9.608292,-106.450005], [39.608288,-106.449722]]';


$json = json_decode($json, true);


$reversed = [];


foreach ($json as $el){

    $reversed[] = [$el[1], $el[0]];

}

json_encode如果您愿意,您可以将其退回。


使用 js(多种方式之一):


var json = [[39.608379, -106.450714],[39.608311,-106.450348], 

[39.608292,-106.450005], [39.608288,-106.449722]];


var reversed = [];


for (var i = 0; i < json.length; i++){

    reversed.push([json[i][1], json[i][0]]);

}


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号