从2个数组中删除非重复项

时间:2015-12-25 08:10:50

标签: php arrays

我没有在网上找到太多关于此的资源。我有2个阵列。我想删除其他数组中不存在的所有项目。

数组1

array(3) {
  [0]=>
  string(8) "download"
  [1]=>
  string(4) "test"
  [2]=>
  string(4) "edit"
}

数组2

array(3) {
  [0]=>
  string(8) "download"
  [1]=>
  string(10) "{category}"
  [2]=>
  string(4) "edit"
}

所以我应该得到的最终数组就像

 array(3) {
          [0]=>
          string(8) "download"
          [2]=>
          string(4) "edit"
    }

4 个答案:

答案 0 :(得分:2)

array_intersect()就是您所需要的:

<?php
    $array1 = array("download", "test", "edit");
    $array2 = array("download", "category", "edit");
    $array3 = array_intersect($array1, $array2);
    var_dump($array3);
?>

更多信息:http://php.net/manual/en/function.array-intersect.php

答案 1 :(得分:1)

您可以使用描述为here

的array_diff函数
$array3 = array_diff($array1, $array2)

将是array1中出现的所有元素,这些元素也不会出现在array2

要查找重叠,您可以使用类似的array_intersect函数

答案 2 :(得分:0)

您可以使用功能array_intersect_ukey

答案 3 :(得分:0)

你可以用2个foreach来做到这一点:

<?php
$array1 = array("download", "test", "edit");
$array2 = array("download", "category", "edit");
$array3 = array();

foreach($array1 as $value){
    foreach($array2 as $value2){
        if($value === $value2){
            $array3[] = $value;
            break;
        }
    }
}

print_r($array3);
相关问题