What is the overhead for an array in Postgres?
You can check that using pg_column_size():

select pg_column_size(1::integer) as int_size, 
       pg_column_size(array[1]::integer[]) as array_size


returns:

int_size | array_size
---------+-----------
       4 |         28


So the overhead is substantial for just a single value.