Maison  >  Article  >  développement back-end  >  Comment supprimer les mêmes éléments dans un tableau à deux dimensions en php

Comment supprimer les mêmes éléments dans un tableau à deux dimensions en php

PHPz
PHPzoriginal
2023-04-26 09:10:02517parcourir

La suppression d'éléments identiques dans un tableau à deux dimensions est une tâche très courante en PHP. Cela nécessite souvent des calculs complexes pour déterminer quels éléments sont identiques avant de pouvoir procéder à la suppression. Heureusement, PHP fournit quelques fonctions utiles pour nous aider à accomplir de telles tâches. Cet article présentera quelques fonctions et techniques pour vous aider à supprimer des éléments identiques dans un tableau bidimensionnel en PHP.

  1. Utilisation des fonctions array_map et array_unique

La fonction array_map applique une fonction à chaque élément d'un tableau et renvoie un nouveau tableau. Nous pouvons utiliser la fonction array_map et la fonction array_unique pour supprimer des éléments identiques dans un tableau à deux dimensions. Tout d'abord, nous utiliserons la fonction array_map pour extraire toutes les valeurs du tableau 2D. Nous utiliserons ensuite la fonction array_unique pour supprimer les valeurs en double dans ce nouveau tableau. Enfin, nous utiliserons la fonction array_map pour remapper les valeurs extraites au format du tableau 2D d'origine.

function removeDuplicates($arr) {
    $flatten = array_map('array_values', $arr); 
    $unique_values = array_map('unserialize', array_unique(array_map('serialize', $flatten))); 
    return array_map('array_combine', array_keys($arr), array_values($unique_values));
}

Cette fonction fonctionne comme suit :

Nous utilisons d'abord la fonction array_map pour convertir le tableau bidimensionnel en un tableau unidimensionnel. Cette fonction renverra un nouveau tableau, où chaque élément représente toutes les valeurs du petit tableau, et ces valeurs seront ensuite encapsulées dans le grand tableau. array_map 函数将二维数组转化如一维数组。这个函数将会返回一个新的数组,其中每个元素代表着小数组中的所有值,这些值再被封装在大数组中。

array_unique 函数会删除 $flatten 数组中的重复值,并重新索引所有的数字键(如果它们存在的话)。

之后,我们发现索引已经被重置了,所以将值 unserialize,重新索引,并使用 array_combine 函数映射回原来的键 / 值对。

  1. 使用 foreach 遍历数组

要使用 foreach 遍历数组来删除相同的元素,我们需要先遍历并创建一个关联数组。在得到所有的值后,我们可以使用 array_unique 函数删除数组中的重复值。最后,我们可以使用 foreach 循环重复映射值。

function removeDuplicates($arr) {
    $new_arr = array();
    foreach ($arr as $key => $value) {
        $new_arr[$key] = serialize($value);
    }
    $unique_arr = array_unique($new_arr);
    foreach ($unique_arr as $key => $value) {
        $unique_arr[$key] = unserialize($value);
    }
    return $unique_arr;
}

这段代码会遍历数组,将键和一个经过序列化的数组值添加到 $new_arr

La fonction array_unique supprime les valeurs en double du tableau $flatten et réindexe toutes les touches numériques si elles existent.
  1. Plus tard, nous constatons que l'index a été réinitialisé, nous désérialisons donc la valeur, la réindexons et utilisons la fonction array_combine pour la mapper à la paire clé/valeur d'origine.
    1. Parcourir un tableau en utilisant foreach

      Pour parcourir un tableau en utilisant foreach pour supprimer les mêmes éléments, nous devons d'abord parcourir et créer un tableau associatif. Après avoir obtenu toutes les valeurs, nous pouvons utiliser la fonction array_unique pour supprimer les valeurs en double dans le tableau. Enfin, nous pouvons utiliser une boucle foreach pour mapper les valeurs à plusieurs reprises.

      function removeDuplicates($arr) {
          $unique_arr = array();
          foreach ($arr as $key => $value) {
              if (!in_array($value, $unique_arr)) {
                  $unique_arr[$key] = $value;
              }
          }
          return $unique_arr;
      }
      Ce code parcourt le tableau, ajoutant la clé et une valeur de tableau sérialisée au tableau associatif $new_arr. Ensuite, nous utilisons la fonction array_unique pour supprimer les éléments en double. Enfin, nous utilisons à nouveau foreach pour désérialiser le tableau et redessiner l'index.

      Différentes manières à partir de la première valeur🎜🎜🎜La troisième méthode est différente des deux premières méthodes. Il parcourt tous les éléments mais ne conserve que la première valeur. De même, nous pouvons utiliser une boucle foreach pour parcourir un tableau. Pour les valeurs non dupliquées, nous ajouterons au tableau $unique_arr, sinon nous ignorerons simplement l'élément. 🎜rrreee🎜Cette fonction parcourt tous les éléments du tableau et utilise la fonction in_array() pour vérifier s'ils ont été ajoutés au tableau $unique_arr. Si l'élément n'est pas trouvé, il est ajouté au tableau. La fonction renvoie un tableau 🎜 avec tous les 🎜éléments identiques supprimés. 🎜🎜Que vous utilisiez la fonction array_map ou foreach, ces conseils ci-dessus peuvent facilement supprimer les mêmes éléments dans le tableau PHP 2D. N'oubliez pas de comprendre et d'utiliser ces fonctions afin de pouvoir travailler plus efficacement avec des tableaux en PHP. 🎜

    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