两组二维数组,如何快速找出差集元素

$arr1 = [
    ['number' => '1001', 'empno' => '9991','title'=>'财务'],
    ['number' => '1001', 'empno' => '9992','title'=>'财务'],
    ['number' => '1002', 'empno' => '9991','title'=>'财务'],
    ['number' => '1002', 'empno' => '9992','title'=>'财务'],
    ['number' => '1001', 'empno' => '9990','title'=>'财务']
];
$arr2 = [
    ['number' => '1001', 'empno' => '9991','title'=>'财务'],
    ['number' => '1001', 'empno' => '9992','title'=>'财务'],
    ['number' => '1002', 'empno' => '9991','title'=>'财务'],
    ['number' => '1002', 'empno' => '9992','title'=>'财务']
];

如有以上两组数组,就如唯一键值一样,number与empno不能出现同一组为重复的数组,以上$arr1,最后一位元素为差集元素(['number' => '1001', 'empno' => '9990','title'=>'财务']),就是不相同的元素。请问怎么用除了套用两个foreach外快速的查找出来呢

浮云间
浏览 698回答 1
1回答

呼啦一阵风

$arr3 = array_filter($arr1, function ($v) use ($arr2) { return !in_array($v, $arr2); }); 最简单的写法不过这个写法有个缺陷只能找到$arr1中不包含$arr2的项,要找出2个数组差集得再封装一下
打开App,查看更多内容
随时随地看视频慕课网APP