>백엔드 개발 >PHP 튜토리얼 >배열 중복을 제거하고 PHP에서 키 이름을 유지하는 가장 좋은 방법

배열 중복을 제거하고 PHP에서 키 이름을 유지하는 가장 좋은 방법

PHPz
PHPz원래의
2024-05-01 13:00:021050검색

PHP에서 배열을 중복 제거하고 키 이름을 유지하는 두 가지 가장 좋은 방법이 있습니다. array_unique(): 중복을 제거할 수 있지만 키 이름을 유지하지 않고 배열을 다시 인덱싱할 수 있습니다. 사용자 정의 함수 array_unique_preserve_keys(): 해시 값을 사용하여 값을 비교하면 중복을 제거하고 키 이름을 보존할 수 있습니다.

PHP 中对数组去重并保持键名的最佳方法

PHP에서 키 이름을 유지하면서 배열을 중복 제거하는 가장 좋은 방법

PHP에서 배열 중복 제거란 키 이름을 변경하지 않고 중복 값을 제거하는 것을 의미합니다. 이는 여러 양식 제출이나 데이터베이스 쿼리와 같이 중복된 요소를 포함할 수 있는 다양한 소스의 데이터로 작업할 때 유용합니다.

방법 1: array_unique()

array_unique() 함수는 배열 중복을 제거하는 데 사용되는 내장 PHP 함수입니다. 배열을 입력으로 받아들이고 중복된 값이 제거된 새 배열을 반환합니다. 그러나 array_unique()는 키 이름을 유지하지 않지만 0부터 시작하여 배열의 색인을 다시 생성합니다.

예:

$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a'];

$result = array_unique($arr);

print_r($result); // 输出:['a', 'b', 'c', 'd', 'e']

방법 2: 맞춤 함수

키 이름을 유지하기 위해 배열 중복을 제거하는 맞춤 함수를 작성할 수 있습니다. 이 방법은 연관 배열을 사용하고 각 값의 해시를 비교하여 중복 여부를 확인합니다.

예:

function array_unique_preserve_keys($arr)
{
    $hash = [];
    $unique_arr = [];

    foreach ($arr as $key => $value)
    {
        $hash_value = md5($value);
        if (!isset($hash[$hash_value]))
        {
            $hash[$hash_value] = 1;
            $unique_arr[$key] = $value;
        }
    }

    return $unique_arr;
}

$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a'];

$result = array_unique_preserve_keys($arr);

print_r($result); // 输出:['a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e']

실제 예:

중복된 사용자 이름과 이메일 주소가 포함된 양식 제출의 배열이 있다고 가정해 보겠습니다. array_unique_preserve_keys() 함수를 사용하여 중복을 제거하면 사용자 이름을 유지하면서 중복 레코드를 제거할 수 있습니다.

아아아아

위 내용은 배열 중복을 제거하고 PHP에서 키 이름을 유지하는 가장 좋은 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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