# Subtract more than one array using DeleteCases

I need to create an array subtracting two arrays from another array. I know how to subtract one:

am = DeleteCases[amp, Alternatives @@ af]


I can subtract an array each time but there must be a way to subtract more than one array at once. So I want to subtract af and ai from amp. How can I do that at once?

-

You can use Select as well :

ar = Range[10];
ar1 = Range[1, 10, 2];
ar2 = Range[1, 10, 3];

Select[ar, Not[MemberQ[Union[ar1, ar2], #]] &]
(* {2, 6, 8} *)

DeleteCases[ar, _?(MemberQ[Union[ar1, ar2], #] &)]
(* {2, 6, 8} *)

-
Or, DeleteCases[ar, Alternatives @@ Union[ar1, ar2]]. –  VLC Feb 25 '13 at 10:26
Not@MemberQ is equivalent to FreeQ. –  chyaong Mar 11 '13 at 11:18

The built-in function Complement does exactly what you need:

With

ar = Range[10];
ar1 = Range[1, 10, 2];
ar2 = Range[1, 10, 3];


elements in the first list that are not in any of the subsequent lists are:

Complement[ar, ar1,ar2]
(* {2, 6, 8 *)

-