테스트 사이트 - 개발 중인 베타 버전입니다

배열 키 값 삭제 질문 채택완료

ComCool 7년 전 조회 2,904

안녕하세요.

 

본론부터 가자면

제 배열은 json으로 만들어진 배열을 json_decode 하여 array 형식으로 만든 배열입니다.

 

근데 그 배열에서

 

unset($this->arr["$arr1"]);

 

하면 삭제가 되질 않습니다.

 

구글에 나와있는 다른 방법들 다 해봤는데 배열이 다 삭제되거나, 삭제를 원한 배열이 아닌 다른게 삭제되거나 (예를 들면 array("1", "2", "3") 이 있을 때 2를 지우면 1이 지워짐.) 삭제가 되지 않습니다.

 

무슨 이유인지 모르겠네요 ㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

그누위즈

unset($this->arr["$arr1"]); 이게 맞나요?

unset($this->arr[$arr1]); 이거아니구요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
ComCool
7년 전
""를 지워도 안돼네요ㅠ

댓글을 작성하려면 로그인이 필요합니다.

7년 전

https://zetawiki.com/wiki/PHP_json_decode()

 

$json = '{"type":"textarea","size":8}';

$arr = json_decode($json);

식으로 하면 객체로 변경됩니다.

 

$json = '{"type":"textarea","size":8}';

$arr = json_decode($json, true);

식으로 하면 배열로 변경됩니다.

 

json_decode($json, true); 식으로 하여 좀 더 익숙한 배열로 변경하는 방식을 사용한 뒤,

unset($arr); unset($data); 식으로 시도해보면 어떨까 합니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

C
ComCool
7년 전
json_decode(file_get_contents("/home/test1/html/". $channel. "Command.json"), true);

으로 했는데 똑같네요...
트샷
7년 전
다시보니 본문의 내용중에..
$this->arr["$arr1"]; 과 같은 표현이 있는데..

arr["$arr1"] 부분이 문제가 있을 가능성이 있어 보입니다.

보통 배열 처리를 할 때에는..
$member['mb_id']
$member['mb_name']
과 같이 사용하거나,
key 부분에 변수를 사용한다면..
$str = "mb_id";
$member[$str]; // 따옴표 사용 X
식으로 사용합니다만, $member['$str'] 식으로 하면 예상과는 다른 작동이 될 가능성이 높습니다.

이부분을 한번 살펴보면 어떨까 합니다.
C
ComCool
7년 전
unset($this->userCommand[$message[1]]);
로 해봤는데 삭제가 안되네요.
unset이 배열도 삭제 가능하다고 여러번 찾아봤는데
unset($this->userCommand); 는 되네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인