【问题标题】:Loop data from JSON and put into another function in codeigniter从 JSON 循环数据并放入 codeigniter 中的另一个函数
【发布时间】:2016-05-20 09:06:35
【问题描述】:

我想从 json 循环数据并将结果放入控制器中的另一个函数中。

获取json格式的函数

public function getApiSuperSpring() {
    //  Initiate curl
    $service_url="http://obd.id-clouds.net/raja_engine/GPS2.php?CMD=GETVEHICLE&APIKEY=1234&DOMAIN=@1111";
    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    //execute the session
    $curl_response = curl_exec($curl);
    //finish off the session
    curl_close($curl);

    $decoded = json_decode($curl_response,TRUE);

    $arr = $decoded['VEHICLE']['DATA']; 

    $encoded = json_encode($arr, JSON_NUMERIC_CHECK);

    $decoded_again = json_decode($encoded, TRUE);


    $data = array();
    foreach($decoded_again as $item) { 
         array_push($data, $item['LATITUDE'].','.$item['LONGITUDE']);
    }

    return $data;
}

来自上述函数的 JSON 结果。

array(27) { 
    [0]=> string(18) "-6.261616,106.8098" 
    [1]=> string(17) "-6.26162,106.8101" 
    [2]=> string(18) "-6.140062,106.8314" 
    [3]=> string(18) "-6.175796,106.8762" 
    [4]=> string(18) "-6.257237,106.8226"
    [5]=> string(18) "-6.324639,106.8879" 
    [6]=> string(18) "-6.256825,106.8229" 
    [7]=> string(18) "-6.139688,106.8313" 
    [8]=> string(18) "-6.221396,106.9848" 
    [9]=> string(18) "-6.566057,106.7637"
    [10]=> string(18) "-6.180055,106.8224" 
    [11]=> string(18) "-6.220346,106.9223" 
    [12]=> string(18) "-6.233933,106.8254" 
    [13]=> string(18) "-6.369154,106.8271" 
    [14]=> string(18) "-6.210821,106.8166"
    [15]=> string(18) "-6.224951,106.8282" 
    [16]=> string(17) "-6.219806,106.813" 
    [17]=> string(17) "-6.243915,106.891" 
    [18]=> string(17) "-6.20253,106.8249" 
    [19]=> string(18) "-6.398064,106.8533"
    [20]=> string(17) "-6.39802,106.8537" 
    [21]=> string(18) "-6.228237,106.8252" 
    [22]=> string(18) "-6.150562,106.7151"
    [23]=> string(18) "-6.142435,106.7061" 
    [24]=> string(18) "-6.169276,106.9115"
    [25]=> string(18) "-6.193656,106.8788" 
    [26]=> string(18) "-6.345975,106.8228" }

我想要的结果如下所示

Coordinate 1 : -6.261616,106.8098
Coordinate 2 : -6.26162,106.8101 
Coordinate 3 : -6.140062,106.8314
..
Coordinate 26 : 6.345975,106.8228

如何将 json 结果转换为上述格式。

【问题讨论】:

  • 看起来你已经把一些相当有组织的信息变成了东西。你怎么知道array [5]=> string(18) "-6.324639,106.8879"是纬度还是经度
  • @RiggsFolly :之前我在 googlemaps api 上使用的数组格式,我将创建另一种 json 格式,但是如果格式只是 lat long,如何循环到其他函数?
  • 欢迎来到 SO。请阅读What topics can I ask aboutHow to ask a good questionthe perfect question SO 不是免费的编码或代码转换或教程或图书馆查找服务 你还必须表明你已经努力解决你自己的问题问题。
  • @RiggsFolly 提前感谢您提供手册,我只是更改了我的问题以及我从该 json 获得的预期结果是什么

标签: php json codeigniter


【解决方案1】:

制作您的自定义助手并将 getApiSuperSpring 这个函数放入其中,并在您想要的任何控制器中调用此助手,我认为它与 codeignitor 无关

【讨论】:

  • 我可以举一些例子吗?
【解决方案2】:

我自己有线索。

public function abc() {

    $result_array = $this->getApiSuperSpring();

    $marker = array();

            foreach($result_array as $item) { 
                echo 'Coordinate'. $item.'<br>';
            }
}

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 1970-01-01
    • 2018-02-18
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2022-01-20
    相关资源
    最近更新 更多