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);
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);
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);
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!