>백엔드 개발 >PHP 문제 >PHP 배열에서 중복된 요소를 삭제하는 방법에 대해 이야기해 보겠습니다.

PHP 배열에서 중복된 요소를 삭제하는 방법에 대해 이야기해 보겠습니다.

PHPz
PHPz원래의
2023-04-12 13:53:55589검색

PHP는 웹 개발, 동적 웹 페이지 프로그래밍 등에 일반적으로 사용되는 서버 측 프로그래밍 언어입니다. PHP 프로그래머가 데이터를 쉽게 조작할 수 있도록 PHP는 배열 Array를 데이터 유형으로 제공합니다. 배열은 키-값 쌍의 정렬된 모음이며 PHP에서 가장 일반적으로 사용되는 데이터 구조 중 하나입니다. 실제 개발에서는 어레이에서 중복 요소가 자주 발생합니다. 이 문제를 해결하려면 어레이 중복 제거의 관점에서 시작해야 합니다. 이 기사에서는 PHP 배열에서 중복된 요소를 삭제하는 방법을 소개합니다.

1. array_unique() 함수를 사용하여 중복 제거

PHP는 배열에서 중복 요소를 제거하고 중복 요소가 포함되지 않은 새 배열을 반환하는 데 사용되는 내장 함수 array_unique()를 제공합니다. 이 함수의 구문은 다음과 같습니다.

array array_unique(array $array[, int $sort_flags = SORT_STRING])

그 중 $array는 연산해야 하는 배열이고, $sort_flags는 중복 제거 시 정렬 방법을 지정하는 선택적 매개변수입니다. 이 매개변수를 전달하지 않으면 기본적으로 문자열 정렬 방법이 사용됩니다. 숫자 크기별로 정렬하려면 SORT_NUMERIC 상수를 전달하면 됩니다. 다음은 샘플 코드입니다.

$old_array = [1, 3, 5, 3, 1, 6, 5];
$new_array = array_unique($old_array);
var_dump($new_array);

출력 결과는 다음과 같습니다.

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(3)
  [2]=>
  int(5)
  [5]=>
  int(6)
}

중복 제거 처리 후 중복 요소가 제거되고 다른 요소가 남는 것을 볼 수 있습니다. 새 배열의 키 이름은 연속적이지 않다는 점에 유의해야 합니다. 왜냐하면 PHP 구문에 따르면 정수와 문자열은 서로 다른 두 가지 데이터 유형이기 때문입니다.

2. 루프를 사용하여 중복 제거

내장 함수 array_unique() 외에도 루프를 사용하여 중복 제거 기능을 구현할 수도 있습니다. 주요 아이디어는 배열의 각 요소를 반복하는 것입니다. 요소가 새 배열에 이미 있으면 추가하지 말고, 그렇지 않으면 새 배열에 추가하세요. 다음은 샘플 코드입니다.

$old_array = [1, 3, 5, 3, 1, 6, 5];
$new_array = [];

foreach ($old_array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}

var_dump($new_array);

출력 결과는 다음과 같습니다.

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(3)
  [2]=>
  int(5)
  [3]=>
  int(6)
}

루프 처리 후 새 배열의 요소가 내장 함수의 출력 결과와 동일하다는 것을 알 수 있습니다. 제거되고 다른 요소가 유지됩니다. in_array() 함수는 요소가 배열에 이미 존재하는지 확인하기 위해 루프 내에서 사용됩니다. 이 함수의 반환 값은 부울 값입니다.

3. array_flip() 함수를 사용하여 배열 중복을 제거하세요

array_unique() 및 루프 외에도 array_flip() 함수를 사용하여 배열을 중복 제거할 수도 있습니다. 이 함수가 하는 일은 배열의 키와 값의 위치를 ​​바꾸고 새로운 배열을 반환하는 것입니다. PHP에서 배열의 키 이름은 고유해야 하므로 이 함수를 사용하여 배열에서 중복된 요소를 제거할 수 있습니다. 다음은 샘플 코드입니다.

$old_array = [1, 3, 5, 3, 1, 6, 5];
$new_array = array_flip($old_array);

var_dump(array_keys($new_array));

출력 결과는 다음과 같습니다.

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(3)
  [2]=>
  int(5)
  [3]=>
  int(6)
}

보시다시피 array_flip() 함수를 사용하여 중복 항목을 제거한 후 다른 요소만 포함하는 새 배열이 반환됩니다. 하지만 원래 배열의 값은 새 배열의 키 이름으로 사용되며 새 배열의 값에는 자동으로 값 1이 할당된다는 점에 유의해야 합니다.

결론

이 기사에서는 PHP 배열에서 중복 요소를 삭제하는 세 가지 방법인 내장 함수 array_unique(), loop 및 array_flip() 함수를 소개합니다. 그중 내장 함수인 array_unique()가 가장 간단한 방법인 반면, loop와 array_flip() 함수는 더 유연하고 좀 더 특별하거나 복잡한 상황을 처리하는 데 적합합니다. 어떤 방법을 사용하든 핵심은 배열 중복 제거의 중요성을 무시할 수 없다는 것입니다. 중복 요소가 없는지 확인해야만 배열을 더 잘 사용하여 다양한 작업을 완료할 수 있습니다.

위 내용은 PHP 배열에서 중복된 요소를 삭제하는 방법에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.