2015-01-22 3 views
0
[ 
    {"type":"1","text":"success"}, 
    {"yid":"167","uid":"15","lat":"13.0501383","lng":"77.597593","time":"2014-10-20 20:25:27","dist":1.95}, 
    {"yid":"204","uid":"32","lat":"13.0412773","lng":"77.6133699","time":"2014-11-17 03:15:24","dist":0.06} 
] 

이것은 PHP 스크립트의 json 응답입니다. 저장하거나 자바 스크립트에서 다차원 배열로 푸시해야합니다. 아래 코드를 사용하여 json 응답을 성공적으로 디코딩 할 수 있습니다.PHP에서 json 응답을 읽고 자바 스크립트 다차원 배열로 푸시

var myLatLng = []; 
var myYid = []; 

post_data = {'userLat':position.coords.latitude, 'userLng':position.coords.longitude}; 

$.post('leo.php', post_data, function(response){ 
    $.each(response, function(index, element) { 
    if(element.lat!=undefined || element.lng!=undefined) 
    { 
     myLatLng.push(element.lat+', '+element.lng); 
     myYid.push(element.yid); 
    }  
    }); 
}); 

또한 다른 기능에서이 값을 전역 적으로 사용해야합니다.

+1

자바 스크립트는 다차원 배열을 가지고 있지 않습니다. 출력물을 어떻게 보이게할까요? – Andy

+0

@Andy는 다차원 배열이 아닙니다 :'myArray = [[]]'? – Hacketo

+0

그것은 배열의 배열입니다. 유사하지만 동일하지는 않습니다. – Andy

답변

0

우선, undefined가 "AND"조건이되는지 확인해야합니다. 두 조건 모두에 액세스하고 두 변수 모두를 " then "절.

"다차원 배열"이라고 말하면 숫자 인덱스 만있는 경우 자바 스크립트에서 다차원 배열을 가질 수 있습니다. 대신에 키 - 값 쌍을 갖고 싶다면 배열이 아닌 객체가 될 것입니다. 그런 당신을 위해 충분히 좋은 경우에 , 그냥 대신 두 개의 분리 된 배열에 하나의 값을 밀어 때마다 배열을 밀어 :

var multiDimArray = []; 

post_data = {'userLat':position.coords.latitude, 'userLng':position.coords.longitude}; 

$.post('leo.php', post_data, function(response){ 
    $.each(response, function(index, element) { 
    if(element.lat!==undefined && element.lng!==undefined) 
    { 
     multiDimArray.push(new Array(element.lat+', '+element.lng,element.yid)); 
    }  
    }); 
}); 
+0

일반적으로''new Array'' 대신에''new array''가 문제를 일으킬 수있는 배열 리터럴을 사용하는 것이 더 좋습니다 (http://jslinterrors.com/the-array-literal-notation-is-preferrable). 나는'multiDimArray.push ([element.lat + ','+ element.lng, element.yid]);를 사용했을 것이다. –

관련 문제