web-dev-qa-db-fra.com

PHP - Fusion de deux tableaux en un tableau (également supprimer les doublons)

Bonjour, je tente de fusionner deux tableaux et je veux également supprimer les valeurs en double du tableau final.

Voici mon tableau 1:

Array
    (
    [0] => stdClass Object
    (
    [ID] => 749
    [post_author] => 1
    [post_date] => 2012-11-20 06:26:07
    [post_date_gmt] => 2012-11-20 06:26:07
)

Et voici mon tableau 2:

Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

)

J'utilise array_merge pour fusionner les deux tableaux en un tableau. il donne une sortie comme celle-ci

Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

[1] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

)

Je veux supprimer ces entrées en double ou puis-je les supprimer avant de les fusionner .............. Pleas help ... Merci !!!!!!!

82
Ravi
array_unique(array_merge($array1,$array2), SORT_REGULAR);

http://se2.php.net/manual/en/function.array-unique.php

179
C. E.

Comme déjà mentionné, array_unique () pourrait être utilisé, mais uniquement pour traiter des données simples. Les objets ne sont pas si simples à manipuler.

Lorsque php tente de fusionner les tableaux, il tente de comparer les valeurs des membres du tableau. Si un membre est un objet, il ne peut pas obtenir sa valeur et utilise à la place le hash spl. En savoir plus sur spl_object_hash ici.

Simplement dit si vous avez deux objets, des instances de la même classe et si l’un ne fait pas référence à l’autre, vous aurez deux objets, quelle que soit la valeur de leurs propriétés.

Pour être sûr de ne pas avoir de doublons dans le tableau fusionné, je pense que vous devez gérer le cas vous-même.

De même, si vous souhaitez fusionner des tableaux multidimensionnels, envisagez d'utiliser array_merge_recursive () over array_merge () .

5
Nikola Petkanski

Il va fusionner deux tableau et supprimer les doublons

<?php
 $first = 'your first array';
 $second = 'your second array';
 $result = array_merge($first,$second);
 print_r($result);
 $result1= array_unique($result);
 print_r($result1);
 ?>

Essayez ce lien link1

4
Daxen

essayez d'utiliser le array_unique()

cela élimine les données en double dans la liste de vos tableaux.

3
Jhonathan H.

La fusion de deux tableaux ne supprime pas le duplicata. Vous pouvez utiliser l'exemple ci-dessous pour obtenir un unique à partir de deux tableaux. 

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");

$result=array_diff($a1,$a2);
print_r($result);
0
kantsverma