삽질의 현장/- PHP

[삽잡이::php] foreach 삽질기... 중복키가 날 괴롭혀~

shovelman 2016. 6. 27. 22:14



foreach문은 형태는 조금씩 다를지라도

사용법은 비슷할 것입니다


이전에도 포스팅했었지만,

php 코드에서 연관 배열이라는 기능을 사용하여

index를 숫자가 아닌 Key 형식으로 사용할 수 있습니다.


(참고_ foreach에 대해서 간략한 소개)


그런데 말입니다...

삽잡이는 최근 JSON 형식의 데이터를 받아와서

Parsing을 통해 데이터를 가공할 일이 있었습니다.



 


Programming이라는 Key와 

JSON 형식의 Value가 쌍으로 이루어져 있는

중첩된 JSON 형식의 데이터를 가지고 놀아야 했습니다.



하지만, 저는 가지고 놀 수 없었습니다...


왜~ 뭔일이야~ 


위와 같은 Json 형식을 

foreach 문을 통해 출력하고자 했으나

계속 마지막 줄의 데이터만 Paring 되는 것 아니겠습니까...


아오 속터져!!! 


그 당시 삽잡이는 멘붕인 상태에 심신이 지쳐있었기 때문에...

어리석게도 당연한 사실을 깨우치지 못했었습니다...

당연한거였는데...



1
2
3
4
5
$aProgram = array(
    "Programming" => array ( "Language" => "C", "IDE" => "Visual Studio" ),
    "Programming" => array ( "Language" => "Java", "IDE" => "Eclipse"),
    "Programming" => array ( "Language" => "PHP", "IDE" => "PhpStorm")
);
cs



자~ 이와 같은 이중 배열이 있다고 가정해보겠습니다.

Programming이라는 Key 값에 

배열로 구성된 데이터들이 쌍으로 이루어져 있습니다.



자~ 이 배열을 foreach문을 통해 돌리면 어떻게 될까요!?



1
2
3
foreach ( $aProgram AS $sKey => $aValue ) {
    echo $sKey."=>".$aValue['Language'].", ".$aValue['IDE']."<br />";
}
cs


자!!! 어떻게 될까요!?


당연히 마지막 값만 출력되게 됩니다....




 달랑 이거 하나가 출력된다 이겁니다...


그런데, 무식한 삽잡이는 

이거 붙잡고 얼마나 오랫동안 사투를 벌였는지....


여러분 정신 붙들고 코딩합시다!!!


멍청이 삽잡이야~~~