2015-11-02 86 views
-1

我想補充谷歌地圖上一些標記,但我這樣做之前,我需要取消JSON陣列的一些內容,我正在做這樣的不能積穀歌標記

$json = str_replace('"', '"', $loc); 
    foreach ($json as $key => $value) 
{ 
    if(preg_match('/^[X]{2}/',$value['pname'])){ 
     unset($json[$key]); 
    } 
} 
echo json_encode($json); 

前未設置這是怎麼顯示JS的console.log()和地塊標記

[Object, Object, Object, Object,...] 

但是未設置後會顯示這樣的,不繪製標記

Object {2: Object, 20: Object, 40: Object,...} 

任何人都可以讓我正確的方向請。

這是在Google地圖上生成標記的代碼。

makeRequest('get_locations.php', function(data) { 
      var data = JSON.parse(data.responseText); 
      for (var i = 0; i < data.length; i++) { 
       displayResellersPostCode(data[i]); 
      } 
     });  
     function displayResellersPostCode(location) { 
      if (parseInt(location.lat) == 0) { 
       geocoder.geocode({ 'pcode1': location.pcode1 }, function(results, status) { 
        if (status == google.maps.GeocoderStatus.OK) { 
         var marker = new google.maps.Marker({ 
          map: map, 
          position: results[0].geometry.location, 
          title: location.uname 
         }); 
        } 
       }); 
      } else { 
       var position = new google.maps.LatLng(parseFloat(location.latitude), parseFloat(location.longitude)); 
       var marker = new google.maps.Marker({ 
        map: map, 
        position: position, 
        title: location.uname 
       }); 
      } 
     } 
+0

爲什麼我下投票? – Tony

+0

什麼JSON字符串看起來像你傳遞給你的JS(無論是否有'unset')? JS看起來像是拿着那個JSON字符串並用它來創建標記? – duncan

+0

感謝您的回覆:[{「uid」:「352」,「latitude」:「57.1269」,「longitude」:「 - 2.13644」,「pname」:「XXAB1」},{「uid」:「60 「,」latitude「:」57.1713「,」longitude「:」 - 2.14152「,」pname「:」XXAB2「},{...}]' – Tony

回答

0

我認爲工作最終代碼,

$json = str_replace('&quot;', '"', $loc); 
foreach ($json as $key => $value) 
{ 
    if(preg_match('/^[X]{2}/',$value['pname'])){ 
     unset($json[$key]); 
    } 
} 
$json = array_values($json); 
echo json_encode($json);