Maison >développement back-end >Problème PHP >Comment implémenter la déduplication de tableau en PHP

Comment implémenter la déduplication de tableau en PHP

PHPz
PHPzoriginal
2023-04-27 09:11:45778parcourir

Dans le développement PHP, la déduplication de tableaux est une opération fréquemment utilisée. Lors du traitement des données du tableau, si des éléments en double apparaissent, cela affectera le traitement des données et les résultats ultérieurs, le tableau doit donc être dédupliqué. Cet article explique comment implémenter la déduplication de tableau en PHP.

Il existe de nombreuses façons de dédupliquer des tableaux en PHP. Vous pouvez utiliser le parcours de boucles, les fonctions intégrées de PHP, etc. Nous les présenterons ensuite un par un.

  1. Utiliser le parcours en boucle

La méthode la plus originale consiste bien sûr à parcourir le tableau puis à supprimer les doublons en fonction de la comparaison des éléments. Le code est le suivant :

function unique($array) {
    $result = array();
    foreach ($array as $value) {
        if (!in_array($value, $result)) {
            $result[] = $value;
        }
    }
    return $result;
}

$array = array(1, 2, 3, 2, 4, 3);
print_r(unique($array));  // [1, 2, 3, 4]

Dans le code ci-dessus, nous utilisons l'instruction foreach et la fonction in_array pour parcourir le tableau et comparer si l'élément existe déjà dans le tableau de résultats. S'il n'existe pas, l'élément est ajouté au tableau résultant. foreach语句和in_array函数来循环遍历数组和对比元素是否已经存在于结果数组中。如果不存在,则将该元素添加到结果数组中。

使用循环遍历可以实现数组去重,但是当数组中元素数量较多时,该方法效率会非常低下,性能不太好,不适合大规模数据的处理。

  1. 使用array_unique函数

PHP中内置的array_unique函数可以直接对数组进行去重操作。该函数可以接收一个数组作为输入,返回一个去重后的数组:

$array = array(1, 2, 3, 2, 4, 3);
print_r(array_unique($array));  // [1, 2, 3, 4]

该函数可以轻松地对数组进行去重,非常方便。但是需要注意的是,该函数只能去掉相邻的重复元素,因此在数组中存在非相邻重复元素时,该函数就无能为力了。

  1. 使用array_flip和array_keys函数

PHP中的array_flip函数可以将数组的键和值对调,获得一个新的数组。如果数组中存在重复的值,那么键会被覆盖,最终我们可以使用array_keys函数得到去重后的数组。代码如下:

$array = array(1, 2, 3, 2, 4, 3);
$array = array_flip($array);
$array = array_keys($array);
print_r($array);  // [1, 2, 3, 4]
  1. 使用array_reduce函数

PHP中的array_reduce函数可以在迭代数组时将其缩减为一个单一的值。我们可以使用这个函数对数组进行去重。代码如下:

function unique($array) {
    return array_reduce($array, function($result, $value) {
        if (!in_array($value, $result)) {
            $result[] = $value;
        }
        return $result;
    }, array());
}

$array = array(1, 2, 3, 2, 4, 3);
print_r(unique($array));  // [1, 2, 3, 4]

上面的代码中,我们使用了array_reduce

L'utilisation du parcours de boucle peut réaliser une déduplication de tableau, mais lorsqu'il y a un grand nombre d'éléments dans le tableau, cette méthode sera très inefficace, fonctionnera mal et ne conviendra pas au traitement de données à grande échelle.

    Utiliser la fonction array_unique

    #🎜🎜#La fonction array_unique intégrée en PHP peut décoder directement les tableaux Opération lourde. Cette fonction peut recevoir un tableau en entrée et renvoyer un tableau dédupliqué : #🎜🎜#rrreee#🎜🎜#Cette fonction peut facilement dédupliquer le tableau, ce qui est très pratique. Cependant, il convient de noter que cette fonction ne peut supprimer que les éléments en double adjacents, donc lorsqu'il y a des éléments en double non adjacents dans le tableau, cette fonction est impuissante. #🎜🎜#
      #🎜🎜#Utilisez les fonctions array_flip et array_keys #🎜🎜##🎜🎜##🎜🎜#La fonction array_flip en PHP peut convertir les clés du tableau Échangez les valeurs et obtenez un nouveau tableau. S'il y a des valeurs en double dans le tableau, les clés seront écrasées et enfin nous pourrons utiliser la fonction array_keys pour obtenir le tableau dédupliqué. Le code est le suivant : #🎜🎜#rrreee
        #🎜🎜#Utilisez la fonction array_reduce #🎜🎜##🎜🎜##🎜🎜#La fonction array_reduce dans PHP peut être itéré. Le tableau est réduit à une seule valeur. Nous pouvons utiliser cette fonction pour dédupliquer des tableaux. Le code est le suivant : #🎜🎜#rrreee#🎜🎜#Dans le code ci-dessus, nous utilisons la fonction array_reduce et la fonction anonyme (closure) pour dédupliquer le tableau. A chaque itération, l'élément actuel est comparé aux éléments qui ont été traités, les éléments en double sont supprimés et le tableau résultat est renvoyé. #🎜🎜##🎜🎜#Summary#🎜🎜##🎜🎜#Il existe de nombreuses façons d'implémenter la déduplication de tableau en PHP. Nous pouvons utiliser le parcours de boucles, les fonctions intégrées et d'autres méthodes. Dans le développement réel, la sélection doit être effectuée en fonction des conditions réelles afin d'obtenir de meilleures performances et effets. #🎜🎜#

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