Thanks for your responses, I've just got to say a little bit more

- The player can crack the program and change the loaded map given by the server. How do I circumvent this from happening?
What are the consequences if this happens? I.e. Does it give potential for cheating? Any data sent to the client is out of your hands, but if you are expecting a response back based on potentially compromised data, then perhaps you need to verify it server-side somehow? Alternatively, if the consequences aren't major, then don't worry about it.
You got me thinking better now, it seems the hacker could change their screen but it wouldn't modify anything server side because if the hacker sent something, the server needs to validate it.
What I would do is, depending on how big your map is, split it into small chunks. Send chunk packets with the map data to the client for the user to load back together. That way you won't send one big array, just lots of small little arrays.
You could store your map as a 2d array of byte for tile ids.
Great idea, chunks! I've seen the 2d array thing been done storing the map. The thing is with the 2d array, I have to specify how many elements there will be. I know I might overshoot it, so it feels a bit weird to use a 2d array. Do you know of any other alternatives to a 2d array when it comes to storing maps?