PHP求二维数组的差集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP求二维数组的差集相关的知识,希望对你有一定的参考价值。

$arr1 = array(
  array(appid=>1111,sku=>aaaa),
  array(appid=>222,sku=>bbbb),
  array(appid=>333,sku=>cccc),
  array(appid=>444,sku=>ddd)
);
$arr2 = array(
  array(appid=>1111,sku=>aaaa),
  array(appid=>222,sku=>bbbb),
  array(appid=>555,sku=>ee)
);
foreach($arr1 as $k=>$v) if(in_array($v, $arr2)) unset($arr1[$k]);
print_r($arr1);

用闭包和 array_filter 函数(一维数据返回差集当然直接是array_diff啦,但是二维呢???)

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

输出的结果都是下面

Array
(
    [2] => Array
        (
            [appid] => 333
            [sku] => cccc
        )
 
    [3] => Array
        (
            [appid] => 444
            [sku] => ddd
        )
 
)

 

以上是关于PHP求二维数组的差集的主要内容,如果未能解决你的问题,请参考以下文章