PHPで開発してますが、ロジックがごちゃごちゃしてきてしまって、困っています。

アルバイト情報サイトのように地域とそれに含まれる都道府県などを表示する場合、
どのような構造で格納して表示するのがスマートなんでしょうか?

地域 :region
都道府県 :pref

region[][0] = 地域コード
region[][1] = 地域名
region[][2] = pref[] <−複数の都道府県の配列

pref[][0] = 都道府県コード
pref[][1] = 都道府県名

このような構造で表示しているため、格納する処理もかなりややこしくて
修正時にエラー多発といった状況です。

これに市区町村までつくとさらにややこしくなってしまうんですよね。。