2012-03-26 2 views
1

데이터를 검색하기 위해 이처럼 액세스하는 객체 내의 배열에 요소를 추가하고 싶습니다.연관 배열의 중간에서 요소 연결하기

var event_id = events_data.event_id[i]["0"]; 
var event_title = events_data.event_title[i]["0"]; 
var selected_source = events_data.selected_source[i]["0"]; 
var channel_id = events_data.channel_id[i]["0"]; 

events_data은 EVENT_ID 요소 EVENT_TITLE ... 즉, 객체가 이런 PHP 함수 생성 가진 객체이다.

$return = array(); 
$return['event_id'] = $event_id; 
$return['event_title'] = $event_title; 
$return['selected_source'] = $selected_source; 
$return['channel_id'] = $channel_id; 
$return['channel_name'] = $channel_name; 
$return['event_site'] = $event_site; 
$return['event_url'] = $event_url; 
$return['start_date'] = $start_date; 
$return['start_time'] = $start_time; 
$return['end_date'] = $end_date; 
$return['end_time'] = $end_time; 
$return['event_notes'] = $event_notes; 

echo json_encode($return); 

편집 - ADDED 정보

는 JSON 객체는 다음과 같습니다.

{ "EVENT_ID": [{ "0": "e20120319215556"}, { "0": "e20120310221512"}, { "0": "e20120319151903"}, { "0": "e20120309123705"}, { "0": "e20120307122044"}, { "0": "e20120306182514"}, { "0": "e20120309211714"}, { "0": "e20120314130727"}, { "0": "e20120319150532"}, { "0": "e20120319141928"}, { "0": "e20120319141201"}, { "0": "e20120301193226"}, { "0": "e20120301184354은"}]}

END INFO는 추가

자바 스크립트 측면에서 나는 이와 같은 events_data 배열을 얻습니다.

$.ajax({ 
    url: "get_events_data.php", 
    type: "POST", 
    dataType : 'json', 
    data: { }, 
    cache: false, 
    async: false, 
    success: function (rdata) { 
     events_data = rdata; 
        } 
     }); 

나는 새 요소를 추가 한 다음 스플 라이스로를 추가 할 수있는 지표를 확인, 자바 스크립트 측면에 events_data에 요소를 추가합니다. 그러나 연관 배열에 대한 텍스트 키 [ "0"]를 사용하여 데이터를 검색하므로 접합 매개 변수를 지정하는 방법을 알지 못합니다.

for (var n=0; n<events_data.event_id.length; n++) { 
    if (current_event_id == events_data.event_id[n]["0"]) { 
     //splice_index = n;    
     events_data.event_id.splice(n,0,event_id); 
     events_data.event_title.splice(n,0,event_title); 
     events_data.selected_source.splice(n,0,selected_source); 
     events_data.channel_id.splice(n,0,channel_id); 
     events_data.channel_name.splice(n,0,channel_text); 
     events_data.event_site.splice(n,0,event_site); 
     events_data.event_url.splice(n,0,event_url); 
     events_data.start_date.splice(n,0,start_date_string); 
     events_data.start_time.splice(n,0,start_time_string); 
     events_data.end_date.splice(n,0,end_date_string); 
     events_data.end_time.splice(n,0,end_time_string); 
     events_data.event_notes.splice(n,0,event_notes); 
     break; 
    } 
} 

스플 라이스 인덱스 "n"을 지정하는 것으로는 보이지 않습니다. 무엇을 바꾸어야합니까?

감사합니다.

+0

이 보인다. 즉, 순서가 보장되는 수치 적으로 색인 된 데이터 구조가 필요하다면 배열을 사용하십시오. 숫자 대신 문자열을 키로하는 연관 배열을 원한다면 객체를 사용하십시오. 배열을 사용하여 끝내면 push, pop 등을 사용하여 항목을 추가하고 제거 할 수 있습니다. – jbabey

+0

이 배열은 PHP 함수에서 반환 된 json 인코딩 객체입니다. 그것은 잘 작동합니다. 나는 그것의 중간에 요소를 추가하는 방법을 알고 싶다. 이와 같이 event_title 배열을 읽으면 events_data 객체에서 var'event_title = events_data.event_title [i] [ "0"];', 요소 중간에 요소를 어떻게 추가합니까? – user823527

+0

JSON을 표시하면 PHP를 보여주는 것보다 훨씬 도움이됩니다. – nrabinowitz

답변

1

대답은 아주 간단했다 : 당신은 그 반대의 경우도 마찬가지 객체 배열을 혼합하고있는 것처럼

Adding an object to an array of objects with splice

var add_object = {"0",event_id}; // declare event id as object 
events_data.event_id.splice(n,0,add_object); // splice object into object array at index