[php] PHP-두 배열을 하나의 배열로 병합 (중복 제거)

안녕하세요, 두 개의 배열을 병합하고 최종 배열에서 중복 값을 제거하려고합니다.

다음은 내 어레이 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
)

그리고 이것은 내 배열 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

)

array_merge두 배열을 하나의 배열로 병합하는 데 사용 하고 있습니다. 다음과 같은 출력을 제공합니다.

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

)

중복 된 항목을 제거하거나 병합하기 전에 제거 할 수 있습니까? 도와주세요 .. 감사합니다 !!!!!!!



답변

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

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


답변

두 배열을 병합하고 중복을 제거합니다.

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

이 링크를 시도
link1


답변

이미 언급했듯이 array_unique ()를 사용할 수 있지만 단순한 데이터를 다룰 때만 사용할 수 있습니다. 개체는 처리하기가 그렇게 간단하지 않습니다.

PHP는 배열을 병합하려고 할 때 배열 구성원의 값을 비교하려고합니다. 멤버가 개체 인 경우 값을 가져올 수 없으며 대신 spl 해시를 사용합니다. 여기에서 spl_object_hash에 대해 자세히 알아보십시오.

두 개의 객체, 매우 동일한 클래스의 인스턴스가 있고 그 중 하나가 다른 하나에 대한 참조가 아닌 경우 간단히 말하면 속성 값에 관계없이 두 개의 객체를 갖게됩니다.

병합 된 배열 내에 중복 항목이 없는지 확인하려면 Imho가 직접 케이스를 처리해야합니다.

또한 다차원 배열을 병합하려는 경우 array_merge () 보다 array_merge_recursive () 사용을 고려하십시오 .


답변

사용하려고 array_unique()

이렇게하면 어레이 목록에서 중복 된 데이터가 제거됩니다.


답변

두 배열을 병합해도 중복이 제거되지는 않습니다. 아래 예제를 시도하여 두 배열에서 고유 한 값을 얻을 수 있습니다.

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


답변