2016-12-19 1 views
1

아래에 표시된 것처럼 연관 배열의 "files"키에 키 값 쌍을 추가하려고하지만 해당 키의 범위를 벗어난 키 - 값 쌍을 사용합니다.연관 배열 PHP 조작

{ 
    "files": [ 
    { 
     "name": "abc.pdf", 
     "size": 17915, 
     "type": "application/pdf", 
     "action": "NIL", 
     "filesize": 17344 
    } 
    ] 
} 

아래 지정된

{ 
    "files": [ 
    { 
     "name": "abc.pdf", 
     "size": 17915, 
     "type": "application/pdf", 
     "action": "NIL" 
    } 
    ], 
    "filesize": 17344 
} 

이 난 다음 그러나 아무도가 작동하지 않습니다 시도를합니다. 요청에 따라

1. $data['filesize'] = $filesize; // appends as shown above 
2. $data['files']['filesize'] = $filesize;// 

편집, CONSOLE.LOG 출력() :

Object {files: Array[1]} 
    files: Array[1] 
     0:Object 
      name: "abc.pdf" 
      size: "1795" 
      type:"application/pdf" 
      action: "NIL" 
     proto: Object 
     length:1 
__proto__:Array[0] 
__proto__:Object 

답변

1
$data['files']가 첫 번째 요소가 다른 배열 배열, 당신의

(이 변경하려는 배열) . 당신이 completly 당신이 설정을 해제 할 수 filesize$data에서 제거하려면

$data['files'][0]['filesize'] = $data['filesize']; 

:

이 시도

unset($data['filesize']); 
+0

정답을, 그리고 당신이 원하는 경우에 사용하는 것을 추가 할 수있는' foreach '$ array ['filesize '] = $ filesize;' – matiaslauriti

+0

감사합니다. 위를 시도했지만 PHP를 얻었습니다. 치명적인 오류 : 사용할 수 없습니다. 배열로 stdClass 유형의 객체 ... 검색 후 나는 내가 arra로 객체를 처리하고 있다는 것을 깨달았습니다. y 당신의 행을 data-> files [0] -> filesize = $ filesize로 변경했습니다; 하지만 지금은 개체를 인쇄 할 때 파일 크기가 보이지 않습니다. – fanbondi

+0

오브젝트에'var_dump'를 사용하고 질문으로 데이터를 업데이트하십시오. – Dekel