PHP将数据转换为json数组

时间:2015-05-12 17:30:26

标签: php arrays json

我正在尝试从我的数据库中获取坐标,并使用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个键,但我似乎无法摆脱引用。

所以我的问题是,我需要采取哪些步骤才能将我现在得到的结果变成我需要的格式?

1 个答案:

答案 0 :(得分:4)

只需将$temp设为数组:

$temp = array($row['latitude'], $row['longtitude']);