>  기사  >  백엔드 개발  >  PHP에서 배열 중복 제거를 구현하고 아래 첨자를 변경하는 방법

PHP에서 배열 중복 제거를 구현하고 아래 첨자를 변경하는 방법

PHPz
PHPz원래의
2023-04-19 09:19:22661검색

PHP를 사용하여 개발하는 과정에서 배열 중복 제거는 일반적인 작업이지만 많은 경우 중복 제거가 필요할 뿐만 아니라 배열의 첨자를 변경해야 하므로 중복 제거 결과를 처리해야 합니다. 이 기사에서는 PHP를 사용하여 배열 중복을 제거하고 첨자를 변경하는 방법을 소개합니다.

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

PHP에서는 array_unique() 함수를 사용하여 배열 중복을 제거하고 새 배열을 반환합니다. 예:

$arr = array('apple', 'banana', 'orange', 'apple', 'pear');
$new_arr = array_unique($arr);
print_r($new_arr);

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

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [4] => pear
)

위의 예에서 원래 배열 $arr에는 두 개의 'apple'이 포함되어 있습니다. array_unique() 함수를 사용하여 중복 항목을 제거하고 새 배열 $new_arr을 얻습니다. '사과'만 예약되어 있습니다.

2. foreach 루프를 사용하여 배열 중복 제거 및 첨자 변경

array_unique() 함수를 사용하여 쉽게 배열 중복을 제거할 수 있지만 이러한 방식으로 새 첨자를 제어할 수 있는 방법은 없습니다. 루프는 배열의 중복을 제거하고 아래 첨자를 변경합니다.

$arr = array('apple', 'banana', 'orange', 'apple', 'pear');
$new_arr = array();
foreach ($arr as $key=>$value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr);

여기에서는 먼저 새 빈 배열 $new_arr을 정의한 다음 foreach 루프를 사용하여 원래 배열 $arr를 순회하여 각 값이 $new_arr에 있는지 확인하고, 존재하지 않으면 $new_arr에 추가합니다. 이 접근 방식의 장점은 아래 첨자를 수동으로 제어하여 배열을 수정할 수 있다는 것입니다.

원본 배열의 마지막 중복 값을 유지하려면 이를 약간 수정해야 합니다. 예를 들어, 중복 제거 중에 마지막 중복 요소가 유지되도록 array_reverse() 함수를 사용하여 원본 배열을 뒤집을 수 있습니다. :

$arr = array('apple', 'banana', 'orange', 'apple', 'pear', 'banana');
$new_arr = array();
$arr = array_reverse($arr);
foreach ($arr as $key=>$value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[$key] = $value;
    }
}
$new_arr = array_reverse($new_arr);
print_r($new_arr);

위의 예에서는 먼저 원래 배열을 뒤집은 다음 foreach 루프를 사용하여 이를 순회하고 새 배열의 아래 첨자를 원래 배열에서 마지막으로 나타나는 요소의 아래 첨자로 설정합니다.

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

배열을 중복 제거하는 또 다른 일반적인 방법은 배열의 키와 값을 교환할 수 있는 array_flip() 함수를 사용하는 것입니다. 배열에 중복된 값이 있는 경우 후속 키가 이전 키를 덮어쓰게 되어 중복 제거 작업이 이루어지며, array_keys() 함수를 통해 새 배열 첨자를 얻을 수 있습니다. 예:

$arr = array('apple', 'banana', 'orange', 'apple', 'pear', 'banana');
$new_arr = array_flip($arr);
$new_arr = array_keys($new_arr);
print_r($new_arr);

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

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [4] => pear
)

위의 예에서는 먼저 array_flip() 함수를 사용하여 원래 배열의 중복을 제거하고 새 배열의 첨자를 원래 배열의 값으로 설정합니다. 그런 다음 array_keys() 함수를 전달하여 새 배열의 첨자 배열을 가져옵니다. 이 방법은 간단하고 사용하기 쉽지만 새 배열의 아래 첨자 순서로 인해 쉽게 방해를 받습니다.

4. 요약

위는 PHP에서 배열 중복을 제거하고 첨자를 변경하는 방법입니다. 실제 시나리오에 따라 다른 방법을 선택할 수 있습니다. 이러한 방법은 모두 원본 배열을 수정해야 한다는 점에 유의해야 합니다. 원본 배열을 유지하려면 복사본을 사용해야 합니다. 동시에, 어레이에 대한 중복 제거 작업에는 일반적으로 비교 기능을 사용해야 합니다. 이는 상대적으로 복잡한 주제이므로 이 문서에서는 자세히 설명하지 않습니다.

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

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