PHP 2차원 배열에서 중복을 제거하는 방법은 무엇입니까? (코드 예)

青灯夜游
풀어 주다: 2023-04-04 13:02:01
앞으로
3447명이 탐색했습니다.

이 글의 내용은 PHP에서 2차원 배열의 중복을 제거하는 방법을 소개하는 것입니다. (코드 예시) 2차원 배열의 중복을 제거하는 방법을 모두가 이해할 수 있도록 하세요. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

머리말: PHP에서 1차원 배열의 중복을 제거하는 것은 매우 간단합니다. array_unique($arr)만 있으면 됩니다. 그런데 2차원 배열의 중복을 제거하는 방법은 무엇입니까?

2차원 배열의 중복을 제거하는 방법을 간단한 코드 예제를 통해 살펴보겠습니다:

코드 예제:

/*
 * 二维数组去重
 * 注意:二维数组中的元素个数必须一致,且键值也得一致,否则无意义
 * @param array $arr
 * @return array $arr_after
 */
public function array_unique_2DArr($arr=array()){
    if(empty($arr) || !is_array($arr)){
        return array();
    }
    /*******处理二维数组个数不一致问题  start 其他项目用可以去掉*******/
    //判断数组中二维数组是否包含uniqueId,存在的话需要处理其他的日志信息,全部加上uniqueId,且uniqueId值必须相同
    $hasUniqueId = false;
    foreach($arr as $val){
        if(array_key_exists('uniqueId', $val)){
            $hasUniqueId = true;
            break;
        }
    }
    //如果$arr中的二维数组中uniqueId存在,则其他也增加
    if($hasUniqueId){
        foreach($arr as $_k=>$_val){
            if(!array_key_exists('uniqueId', $_val)){
                //在$_val中增加unique,只是为了和其他的带有uniqueId键值的数组元素个数保持一致       
                $_val_keys = array_keys($_val);
                $_val_vals = array_values($_val);
                array_unshift($_val_keys, 'uniqueId');
                array_unshift($_val_vals, '0_0');
                $arr[$_k] = array_combine($_val_keys, $_val_vals);
            }
        }
    }
    /********处理二维数组个数不一致问题  end********/
    foreach($arr[0] as $k => $v){  
        $arr_inner_key[]= $k;   //先把二维数组中的内层数组的键值记录在在一维数组中  
    }
    foreach ($arr as $k => $v){  
        $v =join("^",$v);   //降维 用implode()也行 ,注意,拆分时不能用逗号,用其他的不常用符号,逗号可能会由于数据本身含有逗号导致失败
        $temp[$k] =$v;      //保留原来的键值  
    }
    $temp =array_unique($temp);    //去重:去掉重复的字符串
    foreach ($temp as $k => $v){  
        $a = explode("^",$v);   //拆分后的重组 
        $arr_after[$k]= array_combine($arr_inner_key,$a);  //将原来的键与值重新合并  
    }
    return $arr_after;  
}
로그인 후 복사

요약: 위는 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. . 더 많은 관련 비디오 튜토리얼 추천: php 튜토리얼!

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

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