삽질의 현장/- PHP

[삽잡이::php] 시야를 넓혀라! unset( )응용!

shovelman 2016. 7. 11. 22:46



(출처_ Daum)


정정당당히 정면으로 돌파하는 정공법.


항상 정공법만이 답이라고만 할 수 없듯이,

여러 상황속에서는 비틀어보는 시각도 필요한 것 같습니다.


오늘 하루를 보내며 

넓은 시야로 문제를 바라보는 것도 좋겠다고 느낀 

하나의 사례를 간단하게 메모하고자합니다.



삽잡이는 이와 같은 JSON 형식의 Array를 받아와

이리저리 가공해서 쓸 일이 있었습니다.


반복문을 통해 Key와 Value를 각각 나누고

또 그 나눈 값에서 반복문을 사용하여 

데이터를 잘개 쪼개는 코드를 구현하였죠...

(아직 초보라... 생각이 많이... ㅠㅠ)


1
2
3
4
5
6
7
8
9
10
11
<?
    ...
    $aResult = json_decode($aJsonArraytrue);
    foreach($aResult as $sKey1 => $sValue1) {
        ...
        foreach($sValue as $sKey2 => $sValue2){
            ...
        }
    }
    ...
?>
cs


대충 이런식...


중복으로 반복문을 사용하는 것에 대해 

마음에 들지 않았었는데 어쩔 수 없었다 생각했습니다.

그 당시에는 그게 최선이라고 생각했으니...


그런데 어느날 성형이 된(?) 저의 코드를 보게되었습니다

처음에는 코드가 이해가 가지 않았죠...

이게 뭐야... 왜 여기서 unset을...?! 


삽잡이는 그런 곳에 unset()이라는 함수를 쓸 줄은 몰랐으니

당황했습니다. 솔직히...


1
2
3
4
5
6
7
8
9
10
11
12
13
<?
    ...
    $aResult = json_decode($aJsonArraytrue);
    foreach($aResult as $sKey => $sValue) {
        ...
        $sCode = $sValue['sCode'];
        $sPath = $sValue['sPath'];
        
        unset($sValue['sCode'], $sValue['sPath']);
        ...
    }
    ...
?>
cs


위의 JSON 형식의 Array에는

name, code, path 라는 세가지 Key가 있었습니다.


그런데, code와 path를 따로 변수에 저장하고

두 key를 unset해 버린 것입니다.


아하... 그러니 결국은 

name이라는 key와 value 하나만 남게 됬습니다.


그래요... 삽잡이처럼 

foreach문을 굳이 또 돌릴 필요가 없어진 것이었습니다.


아직 php에 익숙하지 못해서라고... 

핑계를 대긴 싫습니다....


그런데, 저한텐 참으로 새로운 접근이었고,

조금 뒤에서 느긋하게 바라봤으면 

'나도 이런 생각을 할 수 있었을까?'

라는 생각이 들더군요...



아무튼... 저는 아직 허접(?)이니깐요...

으하하하하 


아무튼 여러모로...

신선한 자극을 받은 하루였습니다.


누가 볼 때는 저와 같이 신기해 할 수도...

혹은 누가 볼 때에는 

'뭘 이런걸 가지고...' 라고 생각하실 수 있겠지요.


그래도 저한테는 신선한 자극이었습니다~

저는 허접(?) 햇병아리니깐요!

으하하... 날로 날로 성장할테다!!!