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

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);