Maison  >  Article  >  développement back-end  >  Comment supprimer des tableaux identiques en php

Comment supprimer des tableaux identiques en php

PHPz
PHPzoriginal
2023-04-19 09:17:53418parcourir

En PHP, nous devons parfois dédupliquer un tableau, c'est-à-dire supprimer des éléments répétés. Ce processus peut paraître simple, mais différentes situations peuvent nécessiter des approches différentes. Nous aborderons ensuite certaines méthodes courantes de déduplication de baies et leurs scénarios d'application.

1. Utilisez la fonction intégrée array_unique() de PHP

PHP fournit une fonction intégrée array_unique(), qui peut effectuer directement des opérations de déduplication sur un tableau. La syntaxe d'utilisation de cette fonction est la suivante :

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

Parmi eux, $array est le tableau à dédupliquer, $sort_flags est un paramètre facultatif, qui permet de spécifier la méthode de comparaison des éléments. Il peut prendre les valeurs suivantes :

  • SORT_REGULAR - compare de la manière habituelle Element (ne change pas le type de données de l'élément)
  • SORT_NUMERIC - compare les éléments en fonction de la taille numérique
  • SORT_STRING - compare les éléments en fonction de la chaîne
  • SORT_LOCALE_STRING - compare les éléments en fonction de la paramètres régionaux actuels
  • SORT_NATURAL - compare les éléments selon l'ordre naturel

L'exemple de code est le suivant :

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_unique($arr);
print_r($new_arr); // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

L'avantage d'utiliser array_unique() est qu'il est simple et facile à utiliser, et l'opération de déduplication du tableau peut être effectuée dans une seule ligne de code. L'inconvénient est qu'il ne peut gérer que des tableaux unidimensionnels. Si vous souhaitez gérer des tableaux multidimensionnels, un traitement supplémentaire est requis.

2. Utilisez boucle + jugement conditionnel

Si vous souhaitez traiter un tableau multidimensionnel, vous pouvez utiliser boucle + jugement conditionnel pour supprimer les doublons. L'idée de cette méthode est de parcourir le tableau, de comparer tour à tour chaque élément avec l'élément précédent du tableau (sauf ceux qui ont été dédupliqués), et de sauter si des doublons sont trouvés, sinon d'ajouter l'élément au tableau dédupliqué. L'exemple de code est le suivant :

$arr = array(
    array(1, 2, 2),
    array(3, 4, 4),
    array(5, 6, 7),
    array(1, 2, 2)
);

$new_arr = array();
foreach ($arr as $value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr); // 输出:Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 2 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 4 ) [2] => Array ( [0] => 5 [1] => 6 [2] => 7 ) )

L'avantage de l'utilisation de la boucle + du jugement conditionnel est qu'il convient à différentes formes de tableaux, y compris les tableaux multidimensionnels, et peut maintenir de bonnes performances lorsque la quantité de données est importante. L’inconvénient est que cela nécessite d’écrire plus de code et qu’il est facile de commettre des erreurs s’il y a de légers défauts.

3. Utilisez la fonction intégrée array_reduce() de PHP

En plus de array_unique(), PHP fournit également une fonction intégrée array_reduce(), qui peut être utilisée pour effectuer des opérations de réduction sur des tableaux. Pour la déduplication de tableau, nous pouvons convertir le tableau en un tableau associatif avec des éléments de tableau comme clés et valeurs vides, puis le fusionner avec le tableau d'origine. Si les mêmes éléments sont rencontrés, ignorez-les, sinon ajoutez-les à la fusion ultérieure. tableau. L'exemple de code est le suivant :

$arr = array(1, 2, 2, 3, 4, 4, 5);

$new_arr = array_reduce($arr, function($carry, $item) {
    if(!array_key_exists($item, $carry)) {
        $carry[$item] = null;
    }
    return $carry;
}, array());

print_r(array_keys($new_arr)); // 输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

L'avantage d'utiliser array_reduce() est qu'il peut gérer de manière flexible différentes formes de tableaux et que le code est concis. L'inconvénient est que les performances peuvent être réduites pour les baies contenant de gros volumes de données.

En résumé, il existe de nombreuses façons de dédupliquer des tableaux en PHP, et vous pouvez choisir la méthode appropriée en fonction de la situation spécifique. Pour les tableaux unidimensionnels, il est recommandé d'utiliser array_unique() en premier ; pour les tableaux multidimensionnels, il est recommandé d'utiliser boucle + jugement conditionnel ou array_reduce(). Les performances du programme et la qualité des données peuvent être améliorées en dédupliquant les données.

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