2016-06-27 2 views
1

다음은 JSON 배열 내부에서 객체를 삭제하는 코드입니다. 기능 JSON 배열 값 호출하기 전에 :unset()이 예상대로 작동하지 않습니다.

if($_GET['method']=='deleteStudentReflections'){ 

     $jsonString = file_get_contents('../admin/data/student_reflection.json'); 

     $data = json_decode($jsonString, true); 
     print_r($data["student_reflections"]); 
     unset($data["student_reflections"][$_GET['obj_val']]); 

     $newJsonString = json_encode($data); 

     file_put_contents('../admin/data/student_reflection.json', $newJsonString); 

     print_r($_GET); 

} 

는이 작업을 수행해야 그것은 'english_courses'코스 배열 내부의 모든 객체를 삭제해야

{"english_courses":[{"name":"Abdullah","detail":"Bad Boy","image_link":"images\/dp.jpg"},{"name":"Course Chin 2","detail":"Course det 2","image_link":"images\/explicit feedly 3.PNG"},{"name":"courses 3 chinese","detail":"courses detail chinese 3","image_link":"images\/site turorial.png"}]} 

, 대신 삭제하는 것이이 수행합니다

{"english_courses":{"0":{"name":"Abdullah","detail":"Bad Boy","image_link":"images\/dp.jpg"},"2":{"name":"courses 3 chinese","detail":"courses detail chinese 3","image_link":"images\/site turorial.png"}}} 
obj_val 코드

이 '#op이'설정 방법은 다음과 같습니다

function displayData(data){ 
      var html="<select id='op' class='form-control' onchange='valueSelect(this.value);'>"; for(var i=0;i<data["english_courses"].length;i++){ html+='<option value="'+i+'">' + data["english_courses"][i]["name"] + '</option>'; } 
    html+='</select>'; 
    $('#name_dropdown').append(html); } 

기본적으로 드롭 다운 동적 데이터로 채워집니다. 값을 선택하면 obj_val의 값을 기준으로 json 배열의 특정 obj가 삭제됩니다.

이 오류는 obj_val이 '0'이고 PHP 함수가 해당 객체를 삭제해야 할 때만 발생합니다. 배열의 최초의 인덱스 그렇지 않으면 정상적으로 작동합니다.

도와주세요!

+0

무엇인가'$ _GET의 값'[ 'obj_val']? '$ data [ 'student_reflections']'에서 제공 한 예가 무엇입니까? – mauris

+0

기본적으로 드롭 다운은 동적 데이터로 채워집니다. 값을 선택하면 json 배열의 특정 obj가 obj_val –

+0

의 값에 따라 삭제되는 PHP 파일에 추가됩니다.이 오류는 obj_val이 '0'이고 PHP 함수가 첫 번째 인덱스를 삭제해야하는 경우에만 발생합니다 배열의. 그렇지 않으면 잘 작동합니다. –

답변

3

$ 데이터 배열을 다시 인덱싱해야하는데 문제는 unset ($ data ....)을 시도하면 "1"부터 시작하여 "0"부터 시작해야합니다. 일을 잘

How to Remove Array Element and Then Re-Index Array?

+0

나는 개인적으로 코드를 테스트했고 완벽하게 다시 인덱스함으로써 – Faisal

+0

감사 파이잘, 그것은 매력처럼 작동했다. –

관련 문제