簡體   English   中英

如何使用數組的json_encode函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM