[英]how to use json_encode function of an array
我想从php数组中选择使用json_encode函数创建的对象的特定行。
while($locations=$req->fetch()){ $t = $locations->titre; $la = $locations->latitude; $lo = $locations->longitude; $typ = $locations->type; $ep = $locations->couleur; $matrice[$i] = array($t, $la, $lo, $ep); $i=$i+1; }
var locations = <?php echo json_encode($matrice); ?>; locations[0] = ['ma position actuelle', 0, 0, 0]; //console.log(Object.keys(locations)); //console.log(locations); var centerLat=0.0, centerLong=0.0; for (var i=1; i<Object.keys(locations).length; i++) { centerLat+=locations[i][1]; centerLong+=locations[i][2]; }
我想选择“位置”的第二个和第三个元素,但是循环内的语法是错误的。 有谁有主意。 谢谢
首先,您应该执行以下操作:
var locations = JSON.parse(<?php echo json_encode($matrice); ?>);
然后console.log(locations.toString());
检查您的数据
之后,我认为您正在寻找Array.prototype.unshift()在数组的开头添加元素:
locations.unshift(['ma position actuelle', 0, 0, 0]);
( locations[0] = ['ma position actuelle', 0, 0, 0]
仅替换数组的第一项)
然后改变你的循环
for (var i=1; i<Object.keys(locations).length; i++)
对于
var i = 1, ln = locations.length;
for (i;i<ln;i++)
您可以像这样在JS中访问JSONArray(或任何Array)中的任何项目:
object[i]
在您的示例中,如果您想获取第二和第三个元素:
for (...) {
var longitude = locations[i][1];
var latitude = locations[i][2];
}
但是,我建议您使用键并创建JSONObjects而不是JSONArrays,如下所示:
$locations = array();
while($locations=$req->fetch()){
$location = array(
'titre' => $locations->titre,
'latitude' => $locations->latitude,
'longitude' => $locations->longitude,
... etc
);
$locations[] = $location;
}
这样,您将最终得到一个充满JSONObjects的漂亮JSONArray,您可以像这样从JS调用它们:
//locations is a JSONArray
var locations = <?php echo json_encode($matrice); ?>;
//locations[0] is a JSONObject
var latitude = locations[0].latitude;
var latitude = locations[0].longitude;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.