How to check multidimensional array of arrays contains array?
Technically there is no such thing as a two-dimensional array in Postgres. Quote from the manual: 


  The current implementation does not enforce the declared number of dimensions either. [...] So, declaring the array size or number of dimensions in CREATE TABLE is simply documentation; it does not affect run-time behavior


So the value array[[442,2],[443,2]] is internally stored as array[442,2,443,2] and that's the reason why array[[442,2],[443,2]] @&gt; array[2,443] is true, because it is internally represented as array[442,2,443,2] @&gt; array[2,443] which obviously is true.

You can however do that if you declare an array of a row type. 

create type idtype as (id integer, type integer);


Then you can do the following:

select array[(442,2), (443,2)]::idtype[] @&gt; array[(442,2)]::idtype[];
--&gt; true


but 

select array[(442,2), (443,2)]::idtype[] @&gt; array[(2,442)]::idtype[];
--&gt; false