2012-06-18 156 views
0

可能重複:
PHP merge array(s) and delete double values合併陣列,PHP

我需要合併兩個數組。我知道我可以使用array_merge函數。

但它顯示了這兩個數組中的所有元素。但是我需要用一個單獨的值替換所有的值,而不是所有的值。

例如

$array1 = array("2", "3", "4"); 
$array2 = array("2", "7", "8"); 

如果我使用array_merge功能的輸出將是2,3,4,2,7,8,但我希望它是2,3,4,7,8。我的意思是價值二不應再重複一次。我希望有一個功能可以完成我的任務。請向我指出

+2

爲什麼你把雙引號圍繞int值? – TigerTiger

回答

8

首先使用array_merge,然後用array_unique

+1

當在內聯代碼中包含函數名時,將鏈接到它的PHP文檔頁的反引用函數名稱包裝起來是一種很好的方式。最好的部分是你甚至不需要谷歌的網址。點擊創建鏈接按鈕並將'php.net/(function name)'放在'http://'之後。 –

+0

@PhpMyCoder:謝謝,我不知道我是否可以鏈接代碼塊,所以現在我知道了。 –

3
function array_fusion($ArrayOne, $ArrayTwo) 
{ 
    return array_unique(array_merge($ArrayOne, $ArrayTwo)); 
} 
1
array_unique (array_merge($array1,$array2)); 
+0

當在SO上的答案或帖子中編寫代碼時,一定要用四個空格將其縮進,以便它被識別並正確突出顯示。 –

+0

對不起。感謝您的編輯 – FabioCosta

1

您可以使用下面的功能:

$result = array_unique($input);

這將刪除在$輸入數組重複值。所以首先應用array_merge,然後是我認爲的array_unique函數。

0

後曾經發現這個有用的或僅僅是好奇,你也可以做兩陣翻轉。第一次翻轉會導致dupes在從值中創建唯一鍵時退出。翻轉再次恢復它有用的東西。 PHP總是有許多方法來完成任務。

$arrays = array_flip(array_flip(array_merge($array1,$array2))); 

當然,array_unique是更優雅和正確的方法。

$arrays = array_unique(array_merge($array1,$array2));