[PHP] 배열의 중복 값 제거하기 feat. array_unique

folder 프로그래밍 calendar_month web_traffic 12

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 함수를 사용해서 중복된 값을 제거해야 합니다.

끝.

댓글 남기기