2013-05-08 51 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