在考虑重复值时比较两个数组

use*_*170 5 php

我有两个阵列

$array1 = array(1, 2,  2, 3);
$array2 = array( 1, 2,  3,4);
Run Code Online (Sandbox Code Playgroud)

什么时候做的:

var_dump(array_diff($array1, $array2));
Run Code Online (Sandbox Code Playgroud)

得到:

array(0){}
Run Code Online (Sandbox Code Playgroud)

作为输出,但我正在寻找:

array(1){[2]=>2}
Run Code Online (Sandbox Code Playgroud)

有人可以让我知道如何做到这一点

提前致谢

air*_*r4x 4

尝试这个

$array1 = array(1, 2, 2, 3, 4, 5, 5, 7);
$array2 = array(1, 2, 4, 6, 3, 3, 5);
$diff = array_filter($array1, 
  function ($val) use (&$array2) { 
    $key = array_search($val, $array2);
    if ( $key === false ) return true;
    unset($array2[$key]);
    return false;
  }
);
print_r($diff);
// Array ( [2] => 2 [6] => 5 [7] => 7 )
Run Code Online (Sandbox Code Playgroud)