1. 程式人生 > >PHP求二維數組的差集

PHP求二維數組的差集

style app logs func 數組 lte appid set ppi

$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求二維數組的差集