[PHP] 배열의 중복 값 제거하기 feat. array_unique
PHP 에서 배열(array)에 여러가지 값을 담아둔 상태에서 중복된 값을 제거하는 가장 간단한 방법은 array_unique
함수를 사용하는 것입니다.
예를 들어서 아래와 같은 배열이 있다고 해봅시다.
$years = array( 2018, 2018, 2019, 2020, 2020, 2021, 2022 );
직관적으로 위와 같은 배열에서 중복된 값을 제거 하면 2018, 2019, 2020, 2021, 2022 값만 남게 되겠죠? 이 과정을 해주는 함수가 바로 array_unique
입니다.
$years = array_unique( $years );
위 과정을 통해 $years
라는 변수의 중복 값을 제거해 다시 $years
에 담을 수 있습니다.
주의사항
그런데 여기서 한가지 문제가 있습니다.
$years = Array(
[0] => Array([year] => 2018),
[1] => Array([year] => 2018),
[2] => Array([year] => 2019),
[3] => Array([year] => 2020),
[4] => Array([year] => 2020),
[5] => Array([year] => 2021),
[6] => Array([year] => 2022)
);
만약 위와 같이 원래 예시로 사용했던 배열과 비슷해 보이지만 다른, 다차원 배열의 경우 array_unique
함수로 중복된 값을 없앨 수 없다는 것입니다.
이 경우 array_map
과 같은 함수로 일단 연도에 해당 하는 값만 먼저 추출해서 단순한 배열로 만든 뒤, 다시 array_unique
함수를 사용해서 중복된 값을 제거해야 합니다.
끝.