为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
浮云间 2019-03-06 17:58:19
$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外快速的查找出来呢
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

$arr3 = array_filter($arr1, function ($v) use ($arr2) {
  return !in_array($v, $arr2);
});

最简单的写法
不过这个写法有个缺陷只能找到$arr1中不包含$arr2的项,要找出2个数组差集得再封装一下

查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 697 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信