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 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?