2013-05-08 64 views
0

的順序我有兩個數組像這樣PHP合併,刪除和保留兩個數組

1) array(3) { [0]=> string(3) "max" [1]=> string(3) "min" [2]=> string(3) "med" } 

2) array(4) { [0]=> string(3) "max" [1]=> string(3) "min" [2]=> string(4) "other" [3]=> string(3) "med" } 

現在我想合併,刪除這兩個陣列的雙項,重要的是這裏保持秩序最終陣列中的第一陣列的(最大值,最小值,中值 - 從第一陣列>,然後從第二陣列的所有其它)

兩個陣列具有不同的長度(3)陣列和陣列(4)

$myfinalarray = (array_unique(array_merge($arr_first, $arr_last))); 

問題是訂單丟失

結果:

array(4) { [0]=> string(3) "max" [1]=> string(3) "min" [2]=> string(4) "other" [3]=> string(3) "med" } 
what i need is this 
array(4) { [0]=> string(3) "max" [1]=> string(3) "min" [2]=> string(3) "med" [3]=> string(4) "other" } 
+1

使用排序功能 – qisho 2013-05-08 06:53:52

回答

0

你應該刪除雙來自第二陣列的第一項:

$array_last = array_diff($arr_last, $arr_first); 

然後

$myfinalarray = (array_unique(array_merge($arr_first, $arr_last))); 
+0

我沒有嘗試array_diff和第一,但它現在工作正常thx – Jim 2013-05-08 07:05:43

+0

由於你已經'array_diff',不需要'array_unique'。 – Passerby 2013-05-08 07:05:55

+0

錯! array_unique擦除數組中的重複條目。這兩個數組仍然可以有兩個條目;) – 2013-05-08 07:09:38

0

訂單不會丟失,但如果要排序的字母順序排列使用sort功能

$myfinalarray=sort($myfinalarray); 
+0

我懷疑這就是答案吉姆一直在尋找。 – 2013-05-08 07:02:32

0

檢查下面的代碼,

<?php 
$arr1=array(0 => "max",1 => "min",2 => "med"); 

$arr3=array(0 => "max",1 => "min",2 => "other",3 =>"med"); 

$myfinalarray = (array_unique(array_merge($arr1, $arr3))); 
print_r($myfinalarray); 
?> 

輸出將非常具有喜歡,

Array 
(
    [0] => max 
    [1] => min 
    [2] => med 
    [5] => other 
) 

check here