>  기사  >  백엔드 개발  >  PHP에서 중복 배열을 필터링하는 방법

PHP에서 중복 배열을 필터링하는 방법

PHPz
PHPz원래의
2023-04-20 13:55:17942검색

PHP에서는 배열을 다룰 때 종종 상황에 직면하게 됩니다. 가장 일반적인 문제 중 하나는 배열에서 중복 요소를 필터링하는 방법입니다. 이 기사에서는 PHP에서 중복 배열을 필터링하는 방법을 자세히 소개합니다.

1. array_unique 함수

PHP에 내장된 array_unique 함수는 배열에서 중복된 요소를 필터링할 수 있습니다. 요소의 첫 번째 발생을 유지하고 나머지 중복 요소를 모두 제거합니다.

이 함수의 구문은 다음과 같습니다.

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

여기서:

  • array는 필터링해야 하는 배열입니다.
  • sort_flags는 정렬 방법을 지정하는 데 사용되는 선택적 매개변수입니다. 기본적으로 요소는 문자열로 비교됩니다. SORT_NUMERIC 또는 SORT_REGULAR를 전달하여 숫자 또는 일반 정렬을 지정할 수 있습니다.

다음은 예입니다.

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array_unique($old_arr);

print_r($new_arr); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [4] => orange )

원래 배열에 두 개의 'banana' 요소가 있으므로 array_unique 필터링 후에는 하나의 'banana' 요소만 유지됩니다.

2. 수동 중복 제거

array_unique 함수 외에도 PHP 기능을 사용할 수도 있습니다. 수동 중복 제거를 위해 키 이름을 반복할 수 없습니다.

원래 배열을 순회하고 요소를 새 배열의 키로 저장할 수 있으므로 새 배열의 키가 자동으로 중복 제거되고 값을 원하는 대로 설정할 수 있습니다.

다음은 샘플 코드입니다.

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array();

foreach ($old_arr as $value) {
    $new_arr[$value] = 0;
}

print_r(array_keys($new_arr)); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [3] => orange )

이 방법은 좀 더 번거롭기는 하지만 입력과 출력의 순서를 일관되게 유지할 수 있습니다.

3. array_flip 함수

PHP에 내장된 array_flip 함수는 배열의 키 이름과 값을 교환할 수 있습니다. 키 이름은 반복될 수 없으므로 array_flip 함수를 사용하면 빠르게 복제할 수 있습니다.

다음은 샘플 코드입니다.

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array_flip($old_arr);

print_r(array_keys($new_arr)); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [3] => orange )

원래 배열에 두 개의 'banana' 요소가 있으므로 array_flip 함수 뒤에는 하나의 'banana' 요소만 유지됩니다.

4. 요약

이번 글의 설명을 통해 PHP 배열에서 중복된 요소를 빠르게 제거하는 방법을 배웠습니다.

내장된 array_unique 함수를 사용하거나, 수동 중복 제거를 사용하거나, array_flip 함수를 사용하여 중복 제거를 달성할 수 있습니다.

특정 시나리오와 요구 사항에 따라 배열에서 중복 요소를 제거하는 데 가장 적합한 방법을 선택할 수 있습니다.

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

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