Maison >développement back-end >Problème PHP >Résumé des méthodes pour supprimer les valeurs en double des tableaux php
Comment supprimer les valeurs en double des tableaux PHP : 1. Utilisez la requête transversale pour supprimer les éléments du tableau en double ; 2. Utilisez la fonction intégrée PHP "array_unique" pour supprimer les valeurs en double dans le tableau ; . Utilisez "array_flip" pour obtenir l'effet de déduplication.
Un résumé des méthodes pour supprimer les valeurs en double des tableaux php
Plusieurs méthodes php pour supprimer des éléments de tableau Dans de nombreux cas, il y aura une duplication dans le tableau, alors que devons-nous faire si nous supprimons du contenu en double dans le tableau. Ces éléments doivent rester uniques, nous trouvons donc des moyens de les supprimer. Voici plusieurs façons de supprimer les éléments du tableau en double ? en utilisant des requêtes traversantes.
Recommandé : "Tutoriel PHP"
Méthode 1. Supprimer complètement les instances de tableau en double -----Supprimer un élément du tableau
function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value($arr[$key], $var); } else { $value = trim($value); if ($value == $var) { unset($arr[$key]); } else { $arr[$key] = $value; } } } }
$a est un tableau :
count($a); //得到4 unset($a[1]); //删除第二个元素 count($a); //得到3 echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue, echo $a[1]; //无值 ?>
C'est-à-dire qu'après avoir supprimé les éléments du tableau, le nombre d'éléments du tableau (obtenu avec count()) a changé, mais les indices du tableau n'ont pas été réorganisé. La clé avant de supprimer le tableau doit être utilisée pour exploiter la valeur correspondante.
Plus tard, j'ai adopté une autre méthode, qui en fait ne s'appelle pas du tout une "méthode", j'ai utilisé la fonction prête à l'emploi array_splice() en php4.
count ($a); //得到4 array_splice($a,1,1); //删除第二个元素 count ($a); //得到3 echo $a[2]; //得到yellow echo $a[1]; //得到blue ?>
Méthode 2. Fonction pour supprimer les éléments en double dans un tableau
function delmember(&$array, $id) { $size = count($array); for($i = 0; $i <$size - $id - 1; $i ++) { $array[$id + $i] = $array[$id + $i + 1]; } unset($array[$size - 1]); }
Exemple supplémentaire :
Méthode 1. PHP a une fonction intégrée array_unique qui peut être utilisée pour supprimer les doublons dans un tableau Value
array_unique -- Supprimer les valeurs en double dans le tableau
array_unique Description
array array_unique (array array)
array_unique () accepte le tableau en entrée et renvoie un nouveau tableau
sans valeurs en double. Notez que les noms de clés restent inchangés. array_unique() trie d'abord les valeurs sous forme de chaînes, puis conserve uniquement la première clé rencontrée pour chaque valeur, puis ignore toutes les clés suivantes. Cela ne signifie pas que la première occurrence de la même valeur dans un tableau non trié sera conservée.
Remarque : Deux unités sont considérées comme identiques si et seulement si (string) $elem1 === (string) $elem2. Autrement dit, lorsque les expressions des chaînes sont les mêmes.
La première unité sera conservée.
Exemple : array_unique()
<?php $input = array("a" => "green", "red", "b" => "green", "blue", "red"); $result = array_unique($input); print_r($result); ?>
L'exemple ci-dessus affichera :
Array ( [a] => green [0] => red [1] => blue )
Méthode 2, array_flip pour obtenir un effet de déduplication
Une autre méthode consiste à utiliser php La fonction array_flip est utilisée pour obtenir indirectement l'effet de déduplication
array_flip est une fonction qui inverse les clés et les valeurs d'un tableau. Elle a une fonctionnalité qui si deux valeurs du tableau sont identiques. , alors le dernier sera conservé après l'inversion.Une clé et une valeur.Nous utilisons cette fonctionnalité pour implémenter indirectement la déduplication des tableaux.
<?php $arr = array("a"=>"a1","b"=>'b1',"c"=>"a2","d"=>"a1"); $arr1 = array_flip($arr); print_r($arr1);//先反转一次,去掉重复值,输出Array ( [a1] => d [b1] => b [a2] => c ) $arr2 = array_flip($arr); print_r($arr2);//再反转回来,得到去重后的数组,输出Array ( [a1] => d [b1] => b [a2] => c ) $arr3 = array_unique($arr); print_r($arr3);//利用php的array_unique函数去重,输出Array ( [a] => a1 [b] => b1 [c] => a2 ) ?>
La différence entre les deux méthodes est que array_flip est utilisé pour obtenir le dernier. clé et valeur de l'élément répété, et array_unique est utilisé pour l'obtenir. C'est la première clé et valeur de deux éléments répétés.
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!