You have an array stored in $id? Easy. Look up [man]serialize/man and [man]urlencode/man.
You will get a line that looks a little something like this:
header('Location: page.php?id='.urlencode(serialize($id)));
Now, this worked last time I cheked, but I use sessions typically instead so this may not work for you.
[edit: forgot to acutaly say what is happening]
Passing a variable in the URL, you have to figure out how to make it a string. Now, plain strings are easy, 'archangel' is 'archangel', and numbers are fairly easy since php converts between numeric and string types automatically, eg 1 is '1' and 1.3 is '1.03'.
To store a complex type (array or object), you have to serialize it such that it looks like a long string. This is very common especially when storing complex types to files (eg in a database of some form). The [man]serialize/man function returns a string which uses special character patterns to describe a complex type.
One note on using serialized GET variables is that they are automatically urldecoded and unserialized (from the docs).