> 백엔드 개발 > PHP 문제 > PHP에서 동일한 배열을 제거하는 방법

PHP에서 동일한 배열을 제거하는 방법

PHPz
풀어 주다: 2023-04-19 09:41:43
원래의
442명이 탐색했습니다.

PHP에서는 때때로 배열의 중복을 제거해야 합니다. 즉, 반복되는 요소를 제거해야 합니다. 이 프로세스는 간단해 보일 수 있지만 상황에 따라 다른 접근 방식이 필요할 수 있습니다. 다음으로 몇 가지 일반적인 어레이 중복 제거 방법과 해당 애플리케이션 시나리오에 대해 설명하겠습니다.

1. PHP 내장 함수 array_unique() 사용

PHP는 배열에서 중복 제거 작업을 직접 수행할 수 있는 내장 함수 array_unique()를 제공합니다. 이 함수를 사용하는 구문은 다음과 같습니다:

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
로그인 후 복사

그 중 $array는 중복 제거할 배열이고, $sort_flags는 요소의 비교 방법을 지정하는 데 사용되는 선택적 매개변수이며 다음 값을 사용할 수 있습니다.

  • SORT_REGULAR - 일반적인 방법으로 비교 요소(요소의 데이터 유형을 변경하지 않음)
  • SORT_NUMERIC - 숫자 크기에 따라 요소를 비교
  • SORT_STRING - 문자열에 따라 요소를 비교
  • SORT_LOCALE_STRING - 요소를 비교 현재 로케일
  • SORT_NATURAL - 자연 순서에 따라 요소를 비교합니다

샘플 코드는 다음과 같습니다.

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_unique($arr);
print_r($new_arr); // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
로그인 후 복사

array_unique()를 사용하면 간단하고 사용하기 쉬우며 배열 중복 제거 작업을 완료할 수 있다는 장점이 있습니다. 한 줄의 코드로. 단점은 1차원 배열만 처리할 수 있다는 점입니다. 다차원 배열을 처리하려면 추가 처리가 필요합니다.

2. 루프 + 조건 판단 사용

다차원 배열을 처리하려면 루프 + 조건 판단을 사용하여 중복을 제거할 수 있습니다. 이 방법의 아이디어는 배열을 순회하고, 각 요소를 배열의 이전 요소(중복 제거된 요소 제외)와 차례로 비교하고, 중복이 발견되면 건너뛰고, 그렇지 않으면 해당 요소를 중복 제거된 배열에 추가하는 것입니다. 샘플 코드는 다음과 같습니다.

$arr = array(
    array(1, 2, 2),
    array(3, 4, 4),
    array(5, 6, 7),
    array(1, 2, 2)
);

$new_arr = array();
foreach ($arr as $value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr); // 输出:Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 2 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 4 ) [2] => Array ( [0] => 5 [1] => 6 [2] => 7 ) )
로그인 후 복사

루프 + 조건부 판단을 사용하는 장점은 다차원 배열을 포함한 다양한 형태의 배열에 적합하고, 데이터 양이 많을 때 좋은 성능을 유지할 수 있다는 것입니다. 단점은 코드를 더 많이 작성해야 하고, 사소한 결함이라도 있으면 실수하기 쉽다는 점이다.

3. PHP 내장 함수 array_reduce() 사용

array_unique() 외에도 PHP는 배열에 대한 축소 작업을 수행하는 데 사용할 수 있는 내장 함수 array_reduce()도 제공합니다. 배열 중복 제거의 경우 배열 요소를 키와 빈 값으로 사용하여 배열을 연관 배열로 변환한 다음 동일한 요소가 발견되면 건너뛰고, 그렇지 않으면 병합에 추가할 수 있습니다. 후속 배열. 샘플 코드는 다음과 같습니다.

$arr = array(1, 2, 2, 3, 4, 4, 5);

$new_arr = array_reduce($arr, function($carry, $item) {
    if(!array_key_exists($item, $carry)) {
        $carry[$item] = null;
    }
    return $carry;
}, array());

print_r(array_keys($new_arr)); // 输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
로그인 후 복사

array_reduce()를 사용하면 다양한 형태의 배열을 유연하게 처리할 수 있고 코드가 간결하다는 장점이 있습니다. 단점은 데이터 볼륨이 큰 어레이의 경우 성능이 저하될 수 있다는 것입니다.

요약하자면, PHP에서 배열 중복을 제거하는 방법은 여러 가지가 있으며, 특정 상황에 따라 적절한 방법을 선택할 수 있습니다. 1차원 배열의 경우 array_unique()를 먼저 사용하는 것이 좋으며, 다차원 배열의 경우 루프 + 조건부 판단 또는 array_reduce()를 사용하는 것이 좋습니다. 데이터 중복을 제거하면 프로그램 성능과 데이터 품질이 향상될 수 있습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿