使用PHP在JSON数组中编码JSON对象

时间:2014-03-26 14:56:38

标签: php json web-services rest

我正在尝试在JSON数组中的JSON对象中编码2个名称/值对。目前,我能够对名称/值对进行编码,但每个都作为数组中的单独对象进入。

这是我的代码:

    if ($tag == "getLatLng")
    {
        $lineNumber = $_GET['lineNumber'];
        $coordinates = $db->getCoOrds($lineNumber);

        if ($coordinates != false)
        {
            //Get data and set success = 1
            $response["success"] = 1;
            $response['coordinates'] = array();

            $arrayLength = count($coordinates);

            foreach ($coordinates as $value)
            //for ($i=0; $i<$arrayLength+1; $i++)
            {
                //echo $i;
            $response["coordinates"][]['latitude'] = $value[0];
            $response["coordinates"][]['longitude'] = $value[1];
            //$response["coordinates"][]['longitude'] = $coordinates[$i];
            }
            echo json_encode($response);
        }

这是一个示例输出:

    {"success":1,"error":0,"coordinates":[{"latitude":"00.000000"},{"longitude":"-00.000000"},{"latitude":"00.000000"},{"longitude":"-00.000000"},{"latitude":"00.000000"},{"longitude":"-00.000000"}]}

但我需要这个:

    {"success":1,"error":0,"coordinates":[{"latitude":"00.000000","longitude":"-00.000000"},{"latitude":"00.000000","longitude":"-00.000000"},{"latitude":"00.000000","longitude":"-00.000000"}]}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

试试这个

 $i=0;
foreach ($coordinates as $value)
        //for ($i=0; $i<$arrayLength+1; $i++)
        {

        $response["coordinates"][$i]['latitude'] = $value[0];
        $response["coordinates"][$i]['longitude'] = $value[1];
        $i++;
}