Maison > développement back-end > tutoriel php > Meilleur moyen de dédupliquer des tableaux et de conserver les noms de clés en PHP

Meilleur moyen de dédupliquer des tableaux et de conserver les noms de clés en PHP

PHPz
Libérer: 2024-05-01 13:00:02
original
1049 Les gens l'ont consulté

Il existe deux meilleures façons de dédupliquer des tableaux et de conserver les noms de clés en PHP : array_unique() : il peut dédupliquer mais pas conserver les noms de clés et réindexer le tableau. Fonction personnalisée array_unique_preserve_keys() : utilisez des valeurs de hachage pour comparer les valeurs, ce qui peut supprimer les doublons et conserver les noms de clés.

PHP 中对数组去重并保持键名的最佳方法

La meilleure façon de dédupliquer des tableaux tout en conservant les noms de clés en PHP

En PHP, la déduplication de tableau signifie supprimer les valeurs en double tout en gardant les noms de clés inchangés. Ceci est utile lorsque vous travaillez avec des données provenant de différentes sources pouvant contenir des éléments en double, par exemple provenant de plusieurs soumissions de formulaires ou de requêtes de base de données.

Méthode 1 : la fonction array_unique()

array_unique() est une fonction PHP intégrée utilisée pour dédupliquer les tableaux. Il accepte un tableau en entrée et renvoie un nouveau tableau dans lequel les valeurs en double ont été supprimées. Cependant, array_unique() ne conserve pas les noms de clés, mais réindexe le tableau en commençant à 0.

Exemple :

$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a'];

$result = array_unique($arr);

print_r($result); // 输出:['a', 'b', 'c', 'd', 'e']
Copier après la connexion

Méthode 2 : Fonction personnalisée

Afin de conserver les noms de clés, nous pouvons écrire une fonction personnalisée pour dédupliquer le tableau. Cette méthode utilise un tableau associatif et compare le hachage de chaque valeur pour déterminer s'il s'agit d'un doublon.

Exemple :

function array_unique_preserve_keys($arr)
{
    $hash = [];
    $unique_arr = [];

    foreach ($arr as $key => $value)
    {
        $hash_value = md5($value);
        if (!isset($hash[$hash_value]))
        {
            $hash[$hash_value] = 1;
            $unique_arr[$key] = $value;
        }
    }

    return $unique_arr;
}

$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a'];

$result = array_unique_preserve_keys($arr);

print_r($result); // 输出:['a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e']
Copier après la connexion

Exemple pratique :

Disons que nous avons un tableau provenant d'une soumission de formulaire qui contient des noms d'utilisateur et des adresses e-mail en double. En le dédupliquant à l'aide de la fonction array_unique_preserve_keys(), nous pouvons supprimer les enregistrements en double tout en conservant le nom d'utilisateur de l'utilisateur.

$form_data = [
    ['username' => 'john', 'email' => 'john@example.com'],
    ['username' => 'jane', 'email' => 'jane@example.com'],
    ['username' => 'john', 'email' => 'john@example.org'],
    ['username' => 'mark', 'email' => 'mark@example.net']
];

$unique_users = array_unique_preserve_keys($form_data);

print_r($unique_users); // 输出:['john' => ['username' => 'john', 'email' => 'john@example.com'], 'jane' => ['username' => 'jane', 'email' => 'jane@example.com'], 'mark' => ['username' => 'mark', 'email' => 'mark@example.net']]
Copier après la connexion

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!

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