
array_unique 함수는 배열 내의 중복된 값을 제거하는 함수입니다. 이 함수에서 '0'과 '' (빈 문자열)은 중복된 값으로 인식되는 이유는 PHP에서 '0'과 ''은 false로 평가되기 때문입니다.
PHP에서 false로 평가되는 값은 null, 0, '', array(), false, '0' 등입니다. 따라서 array_unique 함수는 이러한 값들을 중복된 값으로 인식합니다.
예를 들어, array_unique 함수를 사용하여 다음과 같은 배열을 생성하면 '0'과 ''은 제거되지 않습니다.
#hostingforum.kr
php
$array = array(0, '', '1', '1', 0, '');
$array = array_unique($array);
print_r($array);
이 경우, 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[0] =>
[1] => 1
[2] => 0
)
이러한 결과가 왜 발생하는지 이해하기 위해서는 PHP에서 false로 평가되는 값을 이해하는 것이 중요합니다. PHP에서 false로 평가되는 값은 null, 0, '', array(), false, '0' 등입니다.
따라서 array_unique 함수에서 '0'과 ''은 중복된 값으로 인식되는 이유는 PHP에서 이러한 값들을 false로 평가하기 때문입니다.
array_unique 함수의 동작을 원활하게 하려면 이러한 false로 평가되는 값을 제거하는 것이 좋습니다.
#hostingforum.kr
php
$array = array(0, '', '1', '1', 0, '');
$array = array_filter($array);
$array = array_unique($array);
print_r($array);
이 경우, 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[1] => 1
)
이러한 예제를 통해 array_unique 함수의 동작을 이해하고, false로 평가되는 값을 제거하는 방법을 알아보았습니다.
2025-05-30 08:10