我可以通过执行两次来反转diff_assoc_array()吗?

千里ち*_*ちゃん 1 php arrays algorithm diff

在阵列上运行array_diff_assoc()两次会给我所有非唯一条目吗?

$array3 = array_diff_assoc($array1, $array2);
$array4 = array_diff_assoc($array1, $array3);
var_dump($array4);
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 6

鉴于:

  • 组条目$array1,和
  • B中的条目集$array2,

B将由以下组成:

  • B',BA中的所有条目,和
  • B""所有的条目不在一个.

$array3,diff_assoc_array($array1, $array2)将是操作A\B,这将减少如下:

  • (A\B')∩(A\B'')
  • (A∩¬B')∩A
  • ∩¬B'.

$array4,diff_assoc_array($array1, $array3)将是操作A \(A∩¬B'),其减少如下:

  • ∩¬(A∩¬B')
  • A∩(¬A∪B')
  • ∩B

因此,是的,最终结果将是两个阵列共有的项目.