Comment puis-je fusionner plusieurs tableaux PHP tout en supprimant les valeurs en double ?

Barbara Streisand
Libérer: 2024-11-13 00:16:01
original
672 Les gens l'ont consulté

How can I merge multiple PHP arrays while removing duplicate values?

Fusion et déduplication de tableaux en PHP

Lorsque vous travaillez avec des tableaux PHP, il est souvent nécessaire de fusionner plusieurs tableaux en un seul tableau. Cependant, il est crucial d'éviter les valeurs en double dans le tableau final.

Fusion de deux tableaux

Pour fusionner deux tableaux, vous pouvez utiliser la fonction array_merge() :

$array1 = [
    (object) [
        'ID' => 749,
        'post_author' => 1,
        'post_date' => '2012-11-20 06:26:07',
        'post_date_gmt' => '2012-11-20 06:26:07'
    ]
];

$array2 = [
    (object) [
        'ID' => 749,
        'post_author' => 1,
        'post_date' => '2012-11-20 06:26:07',
        'post_date_gmt' => '2012-11-20 06:26:07'
    ]
];

$mergedArray = array_merge($array1, $array2);
Copier après la connexion

Le $mergedArray contiendra les deux éléments de $array1 et $array2. Cependant, il contiendra également l'objet en double de $array2, ce qui n'est peut-être pas souhaitable.

Suppression des doublons

Pour supprimer les doublons, vous pouvez utiliser array_unique() fonction. Cette fonction prend un tableau comme argument et renvoie un nouveau tableau sans les valeurs en double. Vous pouvez combiner array_merge() et array_unique() pour fusionner des tableaux et supprimer les doublons :

$mergedAndUniquedArray = 
array_unique(array_merge($array1, $array2), SORT_REGULAR);
Copier après la connexion

L'indicateur SORT_REGULAR garantit que le tableau est trié par les valeurs de ses éléments avant que les doublons ne soient supprimés. Cela peut être important si vous souhaitez conserver l'ordre des tableaux d'origine lors de leur fusion.

Vous pouvez également utiliser une combinaison de array_map() et spl_object_hash() pour supprimer les objets en double des tableaux :

$removeDuplicatesUsingObjects = function ($object) {
    return spl_object_hash($object);
};

$mergedAndUniquedArray = array_map($removeDuplicatesUsingObjects, 
array_merge($array1, $array2));
$mergedAndUniquedArray = array_unique($mergedAndUniquedArray);
Copier après la connexion

Cette méthode utilise la fonction spl_object_hash() pour générer un identifiant unique pour chaque objet, puis supprime les doublons en fonction de ces identifiants.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal