我正在尝试从我的数据库中获取坐标,并使用Jvectormap插件在地图上显示它们作为标记。但是,如何将从数据库中检索的数据转换为可用的json数组?之前我使用morrisJs插件做了类似的事情,所以我知道如何将它们编码为json,但我遇到了一些问题。
截至目前,我的代码如下:
$sql = "SELECT latitude, longtitude, user_name FROM page_load
INNER JOIN users ON page_load.username = users.user_ID
WHERE bot = 0 AND latitude <> 0 AND longtitude <> 0 LIMIT 10";
$sth = $conn->prepare($sql);
$sth->execute();
$arr = array();
while ($rows = $sth->fetchAll(PDO::FETCH_ASSOC)) {
$arr = $rows;
}
foreach($arr as $row){
$temp = $row['latitude'].", ".$row['longtitude'];
$temp2 = $row['user_name'];
$newarray = array("latLng" => $temp,
"name" => $temp2
);
}
?>
markers: <?php print_r(json_encode($newarray)); ?>
返回
{"latLng":"52.5, 6","name":"crecket"},
但是根据这个插件的指南,我需要它看起来像这样:
{latLng: [52.5, 6], name: 'crecket'},
正如您所看到的,我已经将2个长度和长度变量转换为数组的1个键,但我似乎无法摆脱引用。
所以我的问题是,我需要采取哪些步骤才能将我现在得到的结果变成我需要的格式?
答案 0 :(得分:4)
只需将$temp
设为数组:
$temp = array($row['latitude'], $row['longtitude']);