Maison > développement back-end > Problème PHP > Résumé des méthodes pour supprimer les valeurs en double des tableaux php

Résumé des méthodes pour supprimer les valeurs en double des tableaux php

藏色散人
Libérer: 2023-03-02 20:30:01
original
5182 Les gens l'ont consulté

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.

Résumé des méthodes pour supprimer les valeurs en double des tableaux php

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;
}
}
}
}
Copier après la connexion

$a est un tableau :

count($a); //得到4
unset($a[1]); //删除第二个元素
count($a); //得到3
echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue,
echo $a[1]; //无值
?>
Copier après la connexion

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
?>
Copier après la connexion

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]);
}
Copier après la connexion

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);
?>
Copier après la connexion

L'exemple ci-dessus affichera :

Array
(
 [a] => green
 [0] => red
 [1] => blue
)
Copier après la connexion

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"=>&#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 )
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal