>백엔드 개발 >PHP 문제 >PHP의 2차원 배열에서 중복을 제거하는 방법

PHP의 2차원 배열에서 중복을 제거하는 방법

PHPz
PHPz원래의
2023-04-23 16:45:562831검색

PHP로 프로그래밍할 때 2차원 배열 연산이 포함되는 경우가 많습니다. 때로는 2차원 배열의 중복을 제거해야 합니다. 즉, 중복된 항목을 제거해야 합니다. 이 기사에서는 PHP에서 2차원 배열의 중복을 제거하는 방법을 소개합니다.

1. array_unique 함수를 사용하세요

array_unique 함수는 배열에서 중복된 값을 삭제하고 중복된 값이 없는 새 배열을 반환할 수 있습니다. 그러나 array_unique 함수는 2차원 배열의 중복을 제거하는 데 직접 사용할 수 없습니다.

array_walk 함수를 사용하여 배열을 순회하고, 각 요소 내에서 array_unique 함수를 사용하여 중복을 제거할 수 있습니다. 샘플 코드는 다음과 같습니다.

function array_unique_key($arr,$key){
    $tmp_arr=array();
    foreach($arr as $k => $v){
        if(in_array($v[$key],$tmp_arr)){   //判断是否重复
            unset($arr[$k]);   //重复则删除
        }else{
            $tmp_arr[]=$v[$key];  //将值存储在临时数组中
        }
    }
    return $arr;
}

위 코드에서 $arr는 중복 제거가 필요한 2차원 배열이고, $key는 지정된 키 이름(즉, 중복 제거할 요소에 해당하는 키 이름)입니다. ), 함수는 중복이 제거된 새 배열을 반환합니다.

2. 사용자 정의 기능을 사용하여

중복 제거 로직을 직접 구현하세요. 다음 예제 코드는 루프 방법을 사용하여 중복 제거를 구현합니다.

function array_unique_key($arr,$key){
    $temp_array = array();
    foreach ($arr as $k => $v){
        if (!in_array($v[$key], $temp_array)){
            array_push($temp_array, $v[$key]);
            $temp_arr[] = $v;
        }
    }
    return $temp_arr;
}

위 코드에서 $arr는 중복 제거가 필요한 2차원 배열이고, $key는 지정된 키 이름(즉, 키 이름에 해당하는 키 이름)입니다. 요소), 이 함수는 중복 제거 후 새 배열을 반환합니다.

3. array_reduce 함수를 사용하세요.

array_reduce 함수는 배열의 각 요소를 반복하고 축소된 단일 값을 반환할 수 있습니다.

이 기능을 사용하여 2차원 배열의 중복 제거를 구현할 수 있습니다.

코드는 다음과 같습니다.

function array_unique_key($arr,$key){
    return array_reduce($arr, function($carry, $item) use ($key) {
        if(!in_array($item[$key], array_column($carry, $key))) {
            $carry[] = $item;
        }
        return $carry;
    }, []);
}

위 코드에서 $arr는 중복 제거가 필요한 2차원 배열이고, $key는 지정된 키 이름(즉, 중복 제거할 요소에 해당하는 키 이름)입니다. 중복 제거됨), 함수는 중복 제거 후 새 배열을 반환합니다.

4. PHP 내장 함수와 결합된 사용자 정의 함수 사용

다음 코드는 PHP 내장 함수 array_map, array_flip 및 array_values를 결합하여 2차원 배열의 중복 제거 기능을 구현하는 코드입니다.

function array_unique_key($arr,$key){
   return array_values(array_flip(array_map(function($item) use($key){
        return json_encode($item[$key]);
   }, $arr)));
}

위 코드에서 $arr 중복 제거가 필요한 2차원 배열입니다. $key는 지정된 키 이름(즉, 중복 제거할 요소에 해당하는 키 이름)입니다. 이 함수는 중복 제거 후 새 배열을 반환합니다.

요약

위는 PHP에서 2차원 배열을 중복 제거하는 여러 방법입니다. array_unique, 사용자 정의 함수 사용, PHP 내장 함수 array_map, array_flip 및 array_reduce를 결합하는 방법 등을 대략적으로 소개합니다. 다양한 애플리케이션 시나리오는 다양한 방법을 사용하며 프로그래머는 특정 상황에 따라 선택할 수 있습니다.

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

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