Heim > Backend-Entwicklung > PHP-Tutorial > Wie entferne ich Duplikate aus einem zweidimensionalen PHP-Array? (Codebeispiel)

Wie entferne ich Duplikate aus einem zweidimensionalen PHP-Array? (Codebeispiel)

青灯夜游
Freigeben: 2023-04-04 13:02:01
nach vorne
3484 Leute haben es durchsucht

Der Inhalt dieses Artikels besteht darin, vorzustellen, wie man Duplikate aus zweidimensionalen Arrays in PHP entfernt. (Codebeispiel): Lassen Sie alle die Methode zum Deduplizieren zweidimensionaler Arrays verstehen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Vorwort: Die eindimensionale PHP-Array-Deduplizierung ist sehr einfach, nur array_unique($arr), aber wie dedupliziert man zweidimensionale Arrays?

Sehen wir uns die Methode zur Deduplizierung zweidimensionaler Arrays anhand eines einfachen Codebeispiels an:

Codebeispiel:

/*
 * 二维数组去重
 * 注意:二维数组中的元素个数必须一致,且键值也得一致,否则无意义
 * @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;  
}
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Artikel Inhaltlich hoffe ich, dass es für das Studium aller hilfreich sein wird. Empfohlene weitere verwandte Video-Tutorials: PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonWie entferne ich Duplikate aus einem zweidimensionalen PHP-Array? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage