it-swarm.com.de

PHP - Zusammenführen von zwei Arrays in einem Array (auch Duplikate entfernen)

Hallo, ich versuche, zwei Arrays zusammenzuführen und doppelte Werte aus dem endgültigen Array zu entfernen.

Hier ist mein Array 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
)

Und das ist mein Array 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

)

Ich verwende array_merge, um beide Arrays in einem Array zusammenzuführen. es gibt Ausgabe wie diese

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

)

Ich möchte diese doppelten Einträge entfernen oder kann ich diese vor dem Zusammenführen entfernen ..... Pleas help .. Danke !!!!!!!

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

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

179
C. E.

Wie bereits erwähnt, könnte array_unique () verwendet werden, jedoch nur bei einfachen Daten. Die Objekte sind nicht so einfach zu handhaben.

Wenn PHP versucht, die Arrays zusammenzuführen, wird versucht, die Werte der Arraymitglieder zu vergleichen. Wenn ein Member ein Objekt ist, kann es seinen Wert nicht abrufen und verwendet stattdessen den Spl-Hash. Lesen Sie hier mehr über spl_object_hash.

Einfach gesagt, wenn Sie zwei Objekte haben, Instanzen derselben Klasse, und wenn eines davon kein Verweis auf das andere ist, haben Sie am Ende zwei Objekte, unabhängig von deren Wert.

Um sicherzugehen, dass sich innerhalb des zusammengeführten Arrays keine Duplikate befinden, sollten Sie den Fall imho selbst behandeln.

Wenn Sie mehrdimensionale Arrays zusammenführen, sollten Sie array_merge_recursive () over array_merge () verwenden.

5

Es werden zwei Arrays zusammengeführt und Duplikate entfernt

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

Versuchen Sie diesen Link link1

4
Daxen

versuchen Sie, die array_unique() zu verwenden.

dadurch werden doppelte Daten in der Liste Ihrer Arrays entfernt.

3
Jhonathan H.

Beim Zusammenführen von zwei Arrays wird das Duplikat nicht entfernt. Sie können das folgende Beispiel verwenden, um aus zwei Arrays eindeutig zu werden 

$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