What's the best way to cover a large floor area in blocks?

I’m making a Minecraft-esque sort of model but I’m unsure as to the best way to proceed with making a floor. I’ve modelled out all the individual different types of blocks but I’m finding it tedious duplicating each one and trying to line them all up.

I’ve tried using an array modifier, but I need to be able to delete individual blocks afterwards, which it won’t allow me to do.

Is there an easier way to do this?

I’ve tried using an array modifier, but I need to be able to delete individual blocks afterwards, which it won’t allow me to do.

Is there an easier way to do this?
Use array modifier
Apply array modifiers
Separate blocks, select all vertices and P / separate by loose parts
Reset each object origin, select all objects and Origin / Origin to Geometry button in toolshelf

Or- Apply array modifier and in edit mode delete vertices of cubes you need to change and snap in another array or individual cubes.
By hovering mouse above cube and hitting L or Shift-L you can select/deselect vertices of it in combined mesh created by applied Array(s).

Something you may find of interest is the Remesh modifier “Block” setting that could help on your block project.
By example a model :

With the remesh modifier in Block mode
http://i.imgur.com/V03TJ.jpg

Lead into :
http://i.imgur.com/pzIUq.jpg