我正在尝试使用PHP创建一个关联数组。我使用的是一个ajax脚本,它调用一个json文件。
我使用以下PHP代码测试了该脚本:
$testLocs = array(
'loc5' => array( 'info' => 'Some random info', 'lat' => 0, 'lng' => 60 ),
'loc6' => array( 'info' => 'Some random info', 'lat' => 0, 'lng' => 40.345 )
);
echo json_encode($testLocs);
哪个回声:
{"loc1":{"info":"Some random info","lat":0,"lng":60},"loc1":{"info":"Some random info","lat":0,"lng":40.345}}
ajax代码将正常工作。现在我正试图编写一个PHP脚本,从数据库中获取信息。我的PHP代码低于
$query = "Select * from table";
$result = mysql_query($query);
$json_data = array();
while ($row = mysql_fetch_assoc($result)) {
$id = $row['id'];
$lat = $row['lat'];
$lon = $row['lon'];
$page = $row['page'];
array_push($json_data, array('info' => 'Some random info', 'lat' => $lat, 'lng' => $lon));
}
echo json_encode($json_data);
哪个回声:
{"info":"Some random info","lat":"-31.9522","lng":"115.8614"},{"info":"Some random info","lat":"40.7842","lng":"-73.8422"}
我不知道如何将'loc' =>
放在每个数组前面。ajax使用locNUM作为唯一的ID。
感谢
尝试
$json_data = array();
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$id = $row['id'];
$lat = $row['lat'];
$lon = $row['lon'];
$page = $row['page'];
$json_data["loc" . ($i++)] = array('info' => 'Some random info', 'lat' => $lat, 'lng' => $lon);
}
而不是CCD_ 2。array_push
是一个纯数组函数,而不是散列操作函数。
如果$row['id']
是locNUM:的唯一ID
$json_data["loc".$id] = array('info' => 'Some random info', 'lat' => $lat, 'lng' => $lon)
array_push()
与$array[] = $var;
相同,后者为您提供一个递增的数字键。