array(배열)의 문자 사용과 json 인코딩/디코딩 및 배열중복된 값 제거 함수
php 배열의 기본적인 사용 방법입니다. 이 언어는 특징이 배열을 상당히 자유롭게 사용할 수 있다는것입니다. 배열의 인덱스에 문자가 들어가든 숫자가 들어가든 관계가 없습니다. DB컬럼의 값을 배열의 인덱스로도 많이 사용되어 입니다.
여기선 json과 배열에 문자인덱스가 들어가는 연관 배열에 대한 예제 입니다.
(array(배열)의 문자 사용과 json 인코딩/디코딩 및 배열중복된 값 제거 함수)
# 연관배열 사용하기 - 배열 문자 인덱스
$aTest = array();
$aTest['한글'] = 'test1';
$aTest[0] = '숫자 0';
$aTest['abc'] = 23;
$aTest['a'] = 23;
print_r($aTest);
# JSON 으로 사용하기
$json_en = json_encode($aTest);
print_r($json_en);
echo "\n\n" . "\n";
#
$aJsonDe = json_decode($json_en);
print_r($aJsonDe);
# json 배열로
$aJsonDe = json_decode($json_en, true);
print_r($aJsonDe);
# 배열출력하기
echo "\n\n-----------------------------\n";
$aTest = array_unique($aTest); // 중복된 값 삭제하기
$aKeys = array_keys($aTest);
for($ii=0; $ii<count($aKeys); $ii++)
{
$aryidx = $aKeys[$ii];
$val = $aTest[$aryidx];
echo '배열인덱스: ' . $aryidx . ' / ' . '배열값: ' . $val . "\n";
}
echo "\n\n\n";
exit;
위 결과물을 출력하면 아래와 같습니다.
결과에서 마지막에 보면 array_unique를 사용하여 같은 값이 하나 없어진것을 알 수 있습니다. 숫자 인덱스를 사용할 경우 뭔가 하나 없어지는데요. 이런경우를 예방하기 위해선 foeach를 사용하거나 저처럼 array_keys를 사용하면 됩니다.
