住所から都道府県を取得するには?

php で住所から都道府県コードを取得する実装を考えてみました。

色んな方法があるかと思いますが自分の場合は以下になりました 🙂

//住所
$addr = "東京都港区ほげほげ1-2-3";
 
//先頭3文字を切り出す
$cut = mb_substr($addr, 0, 3, 'UTF-8');
 
//都道府県先頭3文字の配列を作成
$prefs = array(
        1 => '北海道',
        2 => '青森県',
        ...省略...
        14 => '神奈川', //県は削除
        15 => '新潟県',
        ...省略...
        30 => '和歌山', //県は削除
        ...省略...
        46 => '鹿児島', //県は削除
        47 => '沖縄県'
);
 
//検索
$prefjis = array_search($cut, $prefs);
 
echo $prefjis;

最初 [都道府県] で preg_match() していたのですが、
“広島県府中市” が出てきて “広島県府” となってしまい
この方法に行きつきました 🙂

メモメモ 🙂