I wrote a new library, Flash, which abstracts away most of the complexity of PROGMEM programming. It provides String, Array, and Table types that make ROM-based data collections as easy to use as “normal” types. Each overrides the C++  operator, so to get at individual elements, one simply uses familiar array syntax. For example, if you have 1000 floating point temperatures in a flash-based “temperature_table” array, you might write code like this:
for (int i=0; i<temperature_table.count(); ++i) if (temperature_table[i] > 98.6) Serial.println(temperature_table[i]);
Interested to learn more? Read all about it here!