fork download
  1. <?php
  2.  
  3. $arr = [
  4. 'a' => [100, 101, 102],
  5. 'b' => [100, 103, 104],
  6. ];
  7.  
  8. $all = array_merge(...array_values($arr));
  9.  
  10. $uses = array_filter(array_count_values($all), function($v){ return $v > 1;});
  11.  
  12. $result = array_map(function($v) use ($uses){
  13. return array_diff($v, array_keys($uses));
  14. }, $arr);
  15.  
  16. print_r($result);
  17.  
Success #stdin #stdout 0.02s 24104KB
stdin
Standard input is empty
stdout
Array
(
    [a] => Array
        (
            [1] => 101
            [2] => 102
        )

    [b] => Array
        (
            [1] => 103
            [2] => 104
        )

)