>  기사  >  백엔드 개발  >  PHP 배열에서 중복 데이터를 제거하는 방법

PHP 배열에서 중복 데이터를 제거하는 방법

PHPz
PHPz원래의
2023-04-24 09:12:473897검색

PHP 프로그래밍에서는 배열에서 중복 데이터를 제거해야 하는 상황에 자주 직면합니다. 이 기사에서는 이 문제를 해결하기 위해 일반적으로 사용되는 몇 가지 방법을 소개합니다.

방법 1: array_unique 함수 사용

array_unique 함수는 배열에서 중복된 요소를 제거하고 새 배열을 반환할 수 있는 PHP 내장 함수입니다. 이 함수는 키 이름을 유지하지만 키 이름을 재설정합니다. 즉, 원래 키 이름은 유지되지 않습니다. 예는 다음과 같습니다.

$array = array(1, 2, 3, 3, 4, 5, 5);
$new_array = array_unique($array);
print_r($new_array);

출력:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 4
    [5] => 5
)

방법 2: 루프를 사용하여 중복 제거

이 방법은 배열을 순회하여 매번 현재 요소가 나타나는지 확인합니다. 나타나면 새 배열에 추가하고, 그렇지 않으면 무시합니다. 예는 다음과 같습니다:

$array = array(1, 2, 3, 3, 4, 5, 5);
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}
print_r($new_array);

출력:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

방법 3: array_flip 및 array_keys 함수 사용

이 방법은 array_flip을 사용하여 배열의 키와 값을 교환하고, 중복 값을 제거하고, 그런 다음 array_keys를 사용하여 원래 배열 키의 키를 얻습니다. 예는 다음과 같습니다:

$array = array(1, 2, 3, 3, 4, 5, 5);
$array = array_flip($array);
$array = array_flip($array);
print_r(array_keys($array));

출력:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 4
    [4] => 5
)

이 방법은 키 이름을 재설정하고 중복 항목을 제거한 후에도 처음 나타나는 요소가 유지되므로 첫 번째 요소의 키 이름이 0이 됩니다. .

방법 4: array_reduce 함수 사용

이 방법은 array_reduce 함수를 사용하여 배열을 처음부터 끝까지 확인합니다. 해당 요소가 나타나지 않으면 새 배열에 추가됩니다. . 예는 다음과 같습니다:

$array = array(1, 2, 3, 3, 4, 5, 5);
$new_array = array_reduce($array, function($carry, $item) {
    if (!in_array($item, $carry)) {
        $carry[] = $item;
    }
    return $carry;
}, array());
print_r($new_array);

출력:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

이 메소드는 두 번째 매개변수로 콜백 함수를 구현해야 한다는 점에 유의해야 합니다. 이 콜백 함수의 기능은 배열을 순회하고 새 배열을 반환하는 것입니다. 결과.

결론

PHP의 배열에서 중복 데이터를 제거하는 방법에는 여러 가지가 있지만 효율성과 가독성은 동일하지 않습니다. 실제 상황에 따라 가장 적절한 방법을 선택하면 코드의 효율성과 유지 관리성이 향상될 수 있습니다.

위 내용은 PHP 배열에서 중복 데이터를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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