dongwen2162 2013-05-26 19:20
浏览 90
已采纳

PHP制作多维JSON数组

I'm trying to make a JSON array from the jquery ui map that has this structure

{"markers":[{"latitude":57.7973333, "longitude":12.0502107}, {"latitude":57.6969943, "longitude":11.9865}]}

Right now, I have no idea about how to do it.

Basically, I'm trying to get locations from a database, but my attempt is making the structure wrong.

The structure I'm getting is

{"markers":{"latitude":"42.33819791906357","longitude":"-71.04998970619276"}}{"markers":{"latitude":"42.33843636702964","longitude":"-71.0503180325693"}}{"markers":{"latitude":"42.33898102309772","longitude":"-71.0509396345085"}}

My PHP is

$result = mysql_query("SELECT lat, lon, it, name FROM login");

while($row = mysql_fetch_array($result))
{
    $lat = $row['lat'];
    $lon = $row['lon'];
    $name = $row['name'];
    $it = $row['it'];

    $data["markers"]["latitude"] = $lat;
    $data["markers"]["longitude"] = $lon;
    $data["markers"]["name"] = $name;
    $data["markers"]["it"] = $it;

    echo json_encode($data);
}
?>

Please help

Thank you,

Hunter

  • 写回答

1条回答 默认 最新

  • doulao2916 2013-05-26 19:23
    关注

    The following code will save it first into a temporary array, only then json_encode it.

    Your problem was that you tried to json_encode it every time you fetched some data.

    $data["markers"] = array();
    while ($row = mysql_fetch_array($result))
    {
        $lat = $row['lat'];
        $lon = $row['lon'];
        $name = $row['name'];
        $it = $row['it'];
    
        $data["markers"][] = array(
            "latitude" => $lat,
            "longitude"] = $lon,
            "name" => $name,
            "it" => $it
        );  
    }
    
    echo json_encode($data);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器