First you have to decide wether your levels should be pixel-based or grid-based. Either way you don't have to set up an array of huge sizes.
Easiest way is to use S. (http://www.scirra.com/forum/viewtopic.php?f=2&t=4791&hilit=lucid+s&start=47) If you don't want to use S, you can do the following:
Let the user place the objects. When it comes to saving, you count the objects on a global scope and so creating an id (object A 20x = 0-19, object B 12x = 20-31, etc) and then "misuse" a hash table. For every object you create 3 keys named
-"whateveryoulike" & str(globalcounter) (content would be the id for the object type, like wall or player start point)
-"whateveryoulike" & str(globalcounter) & "x" (content would be the horizontal position)
-"whateveryoulike" & str(globalcounter) & "y" (content would be the vertical position)
When loading, you use HashTable.KeyCount / 3 to get the number of objects. Then in a for loop you access the values via "whateveryoulike" & str(LoopIndex) and create the objects according to their type and position.
This version has fixed positions on the layout, depending on the cell size the grid represents. So you have to make sure, the objects are correctly placed at the fixed positions. The rest is easy. When the user wants to save, loop through your grid size to see what object is at that position and add the value to the array. Assuming the grid is 16x16, representing cell sizes of 32x32, and the objects hotspot is upper left, this would be:
+For loopx from 1 to 16
For loopy from 1 to 16
++objectwall.x equal to (LoopIndex("loopx") - 1) * 32
objectwall.y equal to (LoopIndex("loopy") - 1) * 32
-Array: Set index (LoopIndex("loopx"), LoopIndex("loopy")) to 'yourobjectidforwall'
++objectplayer.x equal to (LoopIndex("loopx") - 1) * 32
objectplayer.y equal to (LoopIndex("loopy") - 1) * 32
-Array: Set index (LoopIndex("loopx"), LoopIndex("loopy")) to 'yourobjectidforplayer'
++etc for all your object types
When loading you do as newt wrote.
If your objects hotspots are not upper left just add the distance from upper left to the hotspots position like this:
objectwall.x equal to (LoopIndex("loopx") - 1) * 32 + 'distanceX' (for example 16, if hotspot is centered)