Maison  >  Article  >  développement back-end  >  Comment supprimer les éléments en double dans un tableau en php

Comment supprimer les éléments en double dans un tableau en php

藏色散人
藏色散人original
2021-03-10 09:56:352084parcourir

Comment supprimer les éléments en double dans un tableau en PHP : créez d'abord un exemple de fichier PHP ; puis supprimez les éléments en double dans le tableau via la "fonction delmember(&$array, $id){...}".

Comment supprimer les éléments en double dans un tableau en php

L'environnement d'exploitation de cet article : système Windows 7, PHP7.1, ordinateur Dell G3.

Comment supprimer les éléments en double dans un tableau en php

Plusieurs méthodes php pour supprimer les éléments d'un tableau Dans de nombreux cas, nos tableaux auront des doublons, puis nous les supprimons dans le tableau Que faire de certains contenus en double ? Ces éléments doivent rester uniques, nous devons donc trouver des moyens de les supprimer. Voici plusieurs façons de supprimer les éléments de tableau en double à l'aide de requêtes traversantes.
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()) change, mais l'indice du tableau est Pas réinitialisé. Arrangement, vous devez également utiliser la clé avant de supprimer le tableau pour faire fonctionner 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 array_splice() prête à l'emploi de 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 : [Apprentissage recommandé : "Tutoriel vidéo PHP"]

Méthode 1. php a une fonction intégrée array_unique qui peut être utilisée pour supprimer les valeurs en double ​​dans un tableau

  • array_unique -- supprime les valeurs en double dans le tableau
  • array_unique description
  • array array_unique ( array array )
  • array_unique() accepte un 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 suppression des doublons

Une autre méthode consiste à utiliser la fonction array_flip de PHP pour obtenir indirectement l'effet de déduplication
array_flip est une fonction qui inverse les clés et les valeurs du tableau. s'il y en a deux dans le tableau Les valeurs sont les mêmes, alors la dernière clé et la dernière valeur seront conservées après inversion. Profitant de cette fonctionnalité, nous l'utilisons pour implémenter indirectement la déduplication du tableau.

<?php
$arr = array("a"=>"a1","b"=>&#39;b1&#39;,"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 d'utiliser

array_flip obtient la dernière clé et valeur de l'élément répété, et d'utiliser array_unique obtient la première clé et la valeur des 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!

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