array_unique()
array_unique() 함수는 PHP에서 사용되는 배열에서 중복된 값을 제거하는 함수입니다. 이 함수는 중복된 값을 제거한 새로운 배열을 반환합니다.
다음은 array_unique() 함수의 구문입니다.
array_unique(array $array [, int $flags = SORT_STRING ]) : array
- $array: 중복된 값을 제거할 배열입니다.
- $flags (옵션): 비교 시 사용할 정렬 플래그입니다. 기본값은 SORT_STRING으로, 문자열로 변환하여 비교합니다. 다른 플래그로 SORT_NUMERIC, SORT_REGULAR, SORT_LOCALE_STRING 등을 사용할 수 있습니다.
다음은 array_unique() 함수를 사용하여 배열에서 중복된 값을 제거하는 예입니다.
$numbers = array(1, 2, 3, 2, 4, 3, 5);
$uniqueNumbers = array_unique($numbers);
print_r($uniqueNumbers);
출력
Array
(
[0] => 1
[1] => 2
[2] => 3
[4] => 4
[6] => 5
)
위의 예제에서는 $numbers 배열에서 중복된 값을 제거하여 $uniqueNumbers 배열을 생성합니다. array_unique() 함수는 중복된 값을 제거하고 처음 등장하는 값만 유지하는 새로운 배열을 반환합니다.
array_unique() 함수를 사용할 때, 기본적으로는 SORT_STRING 플래그를 사용하여 문자열로 변환한 후 비교합니다. 따라서 정수 형태의 숫자와 문자열 형태의 숫자는 다른 값으로 간주됩니다. 이를 해결하기 위해 숫자 형태로 비교하려면 SORT_NUMERIC 플래그를 사용하면 됩니다.
$numbers = array(1, '2', '3', 2, 4, 3, '5');
$uniqueNumbers = array_unique($numbers, SORT_NUMERIC);
print_r($uniqueNumbers);
출력
Array
(
[0] => 1
[1] => 2
[2] => 4
)
위의 예제에서는 $numbers 배열에서 숫자로 비교하여 중복된 값을 제거합니다. 따라서 문자열 형태의 숫자 2, 3, 5는 숫자로 변환된 후 중복 제거가 되며, 숫자로 변환한 값 2와 3은 중복된 값으로 간주되어 제거됩니다.
array_unique() 함수를 사용하여 배열에서 중복된 값을 제거할 수 있으며, 필요에 따라 정렬 플래그를 사용하여 비교 방식을 변경할 수도 있습니다.
다음은 array_unique() 함수를 사용한 몇 가지 예입니다.
- 중복 항목 제거: 배열에서 중복된 항목을 제거해야 할 때 array_unique() 함수를 사용할 수 있습니다. 예를 들어, 설문 조사 양식에서 중복된 선택지를 제거하거나 사용자가 입력한 태그 목록에서 중복 태그를 제거할 수 있습니다.
$options = ["red", "blue", "green", "red", "yellow", "blue"];
// 중복된 항목을 제거한 새로운 배열 생성
$uniqueOptions = array_unique($options);
// $uniqueOptions = ["red", "blue", "green", "yellow"]
$tags = ["php", "web", "php", "development", "web"];
// 중복된 태그를 제거한 새로운 배열 생성
$uniqueTags = array_unique($tags);
// $uniqueTags = ["php", "web", "development"]
- 배열 결합 후 중복 제거: 두 개 이상의 배열을 결합한 후 중복된 값을 제거해야 할 때 array_unique() 함수를 사용할 수 있습니다. 예를 들어, 여러 사용자 목록에서 중복된 사용자를 제거하거나 두 개의 배열에서 공통된 값을 찾을 수 있습니다.
$users1 = ["john", "mary", "peter"];
$users2 = ["peter", "steve", "mary"];
// 두 배열을 결합한 후 중복된 값을 제거한 새로운 배열 생성
$uniqueUsers = array_unique(array_merge($users1, $users2));
// $uniqueUsers = ["john", "mary", "peter", "steve"]
- 객체 배열에서 중복 객체 제거: 객체로 구성된 배열에서 중복된 객체를 제거해야 할 때 array_unique() 함수를 사용할 수 있습니다. 이 경우 객체의 속성을 기반으로 중복 여부를 판단합니다.
class User {
public $name;
public $email;
public function __construct($name, $email) {
$this->name = $name;
$this->email = $email;
}
}
$users = [
new User("John", "john@example.com"),
new User("Mary", "mary@example.com"),
new User("John", "john@example.com"),
new User("Peter", "peter@example.com")
];
// 중복된 사용자 객체를 제거한 새로운 배열 생성
$uniqueUsers = array_unique($users);
// $uniqueUsers = [
// User("John", "john@example.com"),
// User("Mary", "mary@example.com"),
// User("Peter", "peter@example.com")
// ]
이러한 예는 array_unique() 함수의 일부 활용 방법을 보여줍니다. 실제로 array_unique() 함수는 배열에서 중복된 값을 제거하는 데 유용하며, 데이터 정제 및 중복 처리 작업에 활용될 수 있습니다.
'PROGRAMMING > PHP' 카테고리의 다른 글
PHP array_keys() 배열 키 검색 (0) | 2023.07.07 |
---|---|
PHP array_search() 배열 인덱스 검색 (0) | 2023.07.07 |
PHP array_reduce() 콜백 함수 배열 값 합치기 (0) | 2023.07.06 |
PHP array_map() 콜백 함수 적용 반복문 처리 (0) | 2023.07.06 |
PHP array_filter() 배열 필터링 조건에 맞는 값 추출 (0) | 2023.07.06 |
댓글