2012-05-13 22 views
34

İki diziyi 1 diziye birleştirmem gerekiyor, ancak ihtiyaç duyduğum ana veriler ortak olarak kullanılmadan önce kaldırılmalı (çoğaltılmış değerler), yalnızca benzersiz değerlere ihtiyacım var. birleşti.PHP sadece DUPLICATED değerlerle birlikte dizileri birleştirme

Bunu nasıl yapabilirim?

Bu

dizi örnektir:

İlk dizi

array(3) { 
    [0]=> object(stdClass)#17 (1) { 
     ["email"]=> string(7) "gffggfg" 
    } 
    [1]=> object(stdClass)#18 (1) { 
     ["email"]=> string(6) "[email protected]" 
    } 
    [2]=> object(stdClass)#19 (1) { 
     ["email"]=> string(6) "wefewf" 
    } 
} 

İkinci dizisi

array(3) { 
    [0]=> object(stdClass)#17 (1) { 
     ["email"]=> string(7) "[email protected]" 
    } 
    [1]=> object(stdClass)#18 (1) { 
     ["email"]=> string(6) "wefwef" 
    } 
    [2]=> object(stdClass)#19 (1) { 
     ["email"]=> string(6) "wefewf" 
    } 
} 
+0

olası yinelenen: // stackoverflow.com/questions/3507419/getting-unique-values-from-2-arrays) - yeni bir soru sormadan önce lütfen aramayı kullanın. –

cevap

86

Her iki başlıklar oldukça kendiliğinden gelir (array_unique() fonksiyonu ile array_merge() işlevini birleştirebilir)

$array = array_unique (array_merge ($array1, $array2)); 
+0

de görebildiğim gibi array_merge() duplicates hesaplama görünmüyor, bu yüzden array_unique() benim durumumda veya kullanımdan kaldırılmıştır !? – sbaaaang

+1

'array_merge()' yinelenen anahtarlar eklemez, ancak farklı anahtarlarla yinelenen değerleriniz olduğunda, sadece dizi_merge() gereksiniminde olan – Jeroen

+0

wonderfull'ını eklerim, çünkü her zaman tüm dizilerde, her zaman aynı anahtarı kullanıyorum, gerçekten thx! – sbaaaang

11

Ben doğru soruyu anlamak:

$a1 = Array(1,2,3,4); 
$a2 = Array(4,5,6,7); 
$array = array_diff(array_merge($a1,$a2),array_intersect($a1,$a2)); 
print_r($array); 

dönüşü

Array 
(
[0] => 1 
[1] => 2 
[2] => 3 
[5] => 5 
[6] => 6 
[7] => 7 
) 
+0

çağrısı ile sarmalayarak yeniden canlandırabilirim ben çok düzeyli dizi değil basit dizi var unuttum özür dilerim – sbaaaang

0

hızlı çözüm: [2 dizilerden benzersiz değerler alma] (http

function concatArrays($arrays){ 
    $buf = []; 
    foreach($arrays as $arr){ 
     foreach($arr as $v){ 
      $buf[$v] = true; 
     } 
    } 
    return array_keys($buf); 
} 


$array = concatArrays([$array1, $array2]); 
İlgili konular