Maison >développement back-end >Problème PHP >Comment supprimer les doublons d'un tableau à deux dimensions en PHP

Comment supprimer les doublons d'un tableau à deux dimensions en PHP

PHPz
PHPzoriginal
2023-04-23 16:45:562829parcourir

Lors de la programmation en PHP, des opérations sur les tableaux bidimensionnels sont souvent impliquées. Parfois, nous devons dédupliquer un tableau à deux dimensions, c'est-à-dire supprimer les éléments en double. Cet article explique comment dédupliquer des tableaux bidimensionnels en PHP.

1. Utilisez la fonction array_unique

La fonction array_unique peut supprimer les valeurs en double dans le tableau et renvoyer un nouveau tableau sans valeurs en double. Cependant, la fonction array_unique ne peut pas être utilisée directement pour dédupliquer des tableaux bidimensionnels.

Nous pouvons utiliser la fonction array_walk pour parcourir le tableau et utiliser la fonction array_unique à l'intérieur de chaque élément pour supprimer les doublons. L'exemple de code est le suivant :

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;
}

Dans le code ci-dessus, $arr est le tableau bidimensionnel qui doit être dédupliqué, $key est le nom de clé spécifié (c'est-à-dire le nom de clé correspondant à l'élément à dédupliquer ), et la fonction renvoie le nouveau tableau dédupliqué.

2. Utilisez des fonctions personnalisées

pour implémenter vous-même la logique de déduplication. L'exemple de code suivant implémente la déduplication à l'aide d'une méthode de boucle :

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;
}

Dans le code ci-dessus, $arr est le tableau à deux dimensions qui doit être dédupliqué, $key est le nom de clé spécifié (c'est-à-dire le nom de clé correspondant au élément à dédupliquer), cette fonction renvoie le nouveau tableau après déduplication.

3. Utilisez la fonction array_reduce

La fonction array_reduce peut parcourir chaque élément du tableau et renvoyer une valeur unique réduite.

Nous pouvons utiliser cette fonction pour implémenter la déduplication de tableaux bidimensionnels.

Le code est le suivant :

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;
    }, []);
}

Dans le code ci-dessus, $arr est le tableau bidimensionnel qui doit être dédupliqué, $key est le nom de clé spécifié (c'est-à-dire le nom de clé correspondant à l'élément à dédupliqué), et la fonction renvoie après la déduplication un nouveau tableau.

4. Utilisez des fonctions personnalisées combinées avec les fonctions intégrées PHP

Le code suivant implémente la fonction de combinaison des fonctions intégrées PHP array_map, array_flip et array_values ​​​​​​pour réaliser la fonction de déduplication des tableaux bidimensionnels Le code. est la suivante :

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

Dans le code ci-dessus, $arr C'est un tableau bidimensionnel qui doit être dédupliqué. $key est le nom de clé spécifié (c'est-à-dire le nom de clé correspondant à l'élément à dédupliquer). Cette fonction renvoie le nouveau tableau après la déduplication.

Résumé

Ces méthodes ci-dessus permettent de dédupliquer des tableaux bidimensionnels en PHP. Elles introduisent grossièrement des méthodes telles que l'utilisation de array_unique, des fonctions personnalisées et la combinaison des fonctions intégrées de PHP array_map, array_flip et array_reduce. Différents scénarios d'application utiliseront différentes méthodes et les programmeurs pourront choisir en fonction de la situation spécifique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn