php合并,删除并保持两个数组的顺序

时间:2013-05-08 06:51:23

标签: php arrays merge compare

我有两个像这样的数组

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" } 

现在我想合并并删除两个数组的双重条目,重要的是这里保持第一个数组在最终数组中的顺序(max,min,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" } 

3 个答案:

答案 0 :(得分:0)

订单不会丢失,但如果您想按字母顺序对数组进行排序,请使用sort函数

$myfinalarray=sort($myfinalarray);

答案 1 :(得分:0)

你应该先删除第二个数组的双重条目:

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

然后

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

答案 2 :(得分: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