There are several methods to achieve what you want.
Have a look at Google Maps API examples on google as these may provide insight on how to solve the problem
To store the I recommend using a PostgreSQL Database togehter with PostGIS
About PostGIS (quote from the site):
PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.
If you'll be able to use the above setup, working with the db data will be way easier.
This might also be useful:
PHP Postal (Zip) Code Range and Distance Calculation
Have your eyes roll over this and let me know what you think.
Good luck.