郵便番号から都道府県を判定
2017年3月24日
郵便番号の上2桁で都道府県が分かるので、そういう関数を作成しました。
※追記 2018/6/21※
※郵便番号の上2桁だけでは都道府県を判別することはできないみたいです。m(__)m
※ご指摘をいただきました、誠にありがとうございます。m(__)m
郵便番号の上2桁 | 都道府県 |
---|---|
01 | 青森県 秋田県 |
31 | 茨城県 栃木県 |
34 | 栃木県 埼玉県 |
38 | 新潟県 群馬県 長野県 |
43 | 愛知県 静岡県 |
49 | 愛知県 三重県 |
52 | 滋賀県 京都府 |
56 | 大阪府 兵庫県 |
61 | 京都府 大阪府 |
63 | 大阪府 奈良県 |
64 | 三重県 奈良県 和歌山県 |
68 | 島根県 鳥取県 |
81 | 福岡県 長崎県 |
83 | 福岡県 大分県 |
84 | 佐賀県 長崎県 |
87 | 福岡県 大分県 |
92 | 石川県 福井県 |
93 | 富山県 石川県 |
94 | 新潟県 長野県 |
下記表にあるように郵便番号の上6桁でも都道府県が違う場合があるみたいなので、厳密に判定したい場合は7桁すべて必要みたいです。(郵便番号がすべて同じで都道府県が違う場合もありえる?)
郵便番号の上6桁 | 都道府県 |
---|---|
384009 | 群馬県 長野県 |
498000 | 三重県 愛知県 |
618000 | 大阪府 京都府 |
871000 | 大分県 福岡県 |
922067 | 石川県 福井県 |
郵便番号 | 都道府県 |
---|---|
4980000 | 愛知県 三重県 |
6180000 | 京都府 大阪府 |
8710000 | 大分県 福岡県 |
番号の振り分け
都道府県 | 番号 |
---|---|
北海道 | 00・04-09 |
青森県 | 03 |
岩手県 | 02 |
宮城県 | 98 |
秋田県 | 01 |
山形県 | 99 |
福島県 | 96・97 |
茨城県 | 30・31 |
栃木県 | 32 |
群馬県 | 37 |
埼玉県 | 33-36 |
千葉県 | 26-29 |
東京都 | 10-20 |
神奈川県 | 21-25 |
新潟県 | 94・95 |
富山県 | 93 |
石川県 | 92 |
福井県 | 91 |
山梨県 | 40 |
長野県 | 38・39 |
岐阜県 | 50 |
静岡県 | 41-43 |
愛知県 | 44-49 |
三重県 | 51 |
滋賀県 | 52 |
京都府 | 60-62 |
大阪府 | 53-59 |
兵庫県 | 65-67 |
奈良県 | 63 |
和歌山県 | 64 |
鳥取県 | 68 |
島根県 | 69 |
岡山県 | 70・71 |
広島県 | 72・73 |
山口県 | 74・75 |
徳島県 | 77 |
香川県 | 76 |
愛媛県 | 79 |
高知県 | 78 |
福岡県 | 80-83 |
佐賀県 | 84 |
長崎県 | 85 |
熊本県 | 86 |
大分県 | 87 |
宮崎県 | 88 |
鹿児島県 | 89 |
沖縄県 | 90 |
function getPrefCode($zip) {
$pref = "";
if (preg_match('/^(00|0[4-9])/', $zip)) {
$pref = 1;// 北海道
}
elseif (preg_match('/^03/', $zip)) {
$pref = 2;// 青森県
}
elseif (preg_match('/^02/', $zip)) {
$pref = 3;// 岩手県
}
elseif (preg_match('/^98/', $zip)) {
$pref = 4;// 宮城県
}
elseif (preg_match('/^01/', $zip)) {
$pref = 5;// 秋田県
}
elseif (preg_match('/^99/', $zip)) {
$pref = 6;// 山形県
}
elseif (preg_match('/^9[6-7]/', $zip)) {
$pref = 7;// 福島県
}
elseif (preg_match('/^3[0-1]/', $zip)) {
$pref = 8;// 茨城県
}
elseif (preg_match('/^32/', $zip)) {
$pref = 9;// 栃木県
}
elseif (preg_match('/^37/', $zip)) {
$pref = 10;// 群馬県
}
elseif (preg_match('/^3[3-6]/', $zip)) {
$pref = 11;// 埼玉県
}
elseif (preg_match('/^2[6-9]/', $zip)) {
$pref = 12;// 千葉県
}
elseif (preg_match('/^(1[0-9]|20)/', $zip)) {
$pref = 13;// 東京都
}
elseif (preg_match('/^2[1-5]/', $zip)) {
$pref = 14;// 神奈川県
}
elseif (preg_match('/^9[4-5]/', $zip)) {
$pref = 15;// 新潟県
}
elseif (preg_match('/^93/', $zip)) {
$pref = 16;// 富山県
}
elseif (preg_match('/^92/', $zip)) {
$pref = 17;// 石川県
}
elseif (preg_match('/^91/', $zip)) {
$pref = 18;// 福井県
}
elseif (preg_match('/^40/', $zip)) {
$pref = 19;// 山梨県
}
elseif (preg_match('/^3[8-9]/', $zip)) {
$pref = 20;// 長野県
}
elseif (preg_match('/^50/', $zip)) {
$pref = 21;// 岐阜県
}
elseif (preg_match('/^4[1-3]/', $zip)) {
$pref = 22;// 静岡県
}
elseif (preg_match('/^4[4-9]/', $zip)) {
$pref = 23;// 愛知県
}
elseif (preg_match('/^51/', $zip)) {
$pref = 24;// 三重県
}
elseif (preg_match('/^52/', $zip)) {
$pref = 25;// 滋賀県
}
elseif (preg_match('/^6[0-2]/', $zip)) {
$pref = 26;// 京都府
}
elseif (preg_match('/^5[3-9]/', $zip)) {
$pref = 27;// 大阪府
}
elseif (preg_match('/^6[5-7]/', $zip)) {
$pref = 28;// 兵庫県
}
elseif (preg_match('/^63/', $zip)) {
$pref = 29;// 奈良県
}
elseif (preg_match('/^64/', $zip)) {
$pref = 30;// 和歌山県
}
elseif (preg_match('/^68/', $zip)) {
$pref = 31;// 鳥取県
}
elseif (preg_match('/^69/', $zip)) {
$pref = 32;// 島根県
}
elseif (preg_match('/^7[0-1]/', $zip)) {
$pref = 33;// 岡山県
}
elseif (preg_match('/^7[2-3]/', $zip)) {
$pref = 34;// 広島県
}
elseif (preg_match('/^7[4-5]/', $zip)) {
$pref = 35;// 山口県
}
elseif (preg_match('/^77/', $zip)) {
$pref = 36;// 徳島県
}
elseif (preg_match('/^76/', $zip)) {
$pref = 37;// 香川県
}
elseif (preg_match('/^79/', $zip)) {
$pref = 38;// 愛媛県
}
elseif (preg_match('/^78/', $zip)) {
$pref = 39;// 高知県
}
elseif (preg_match('/^8[0-3]/', $zip)) {
$pref = 40;// 福岡県
}
elseif (preg_match('/^84/', $zip)) {
$pref = 41;// 佐賀県
}
elseif (preg_match('/^85/', $zip)) {
$pref = 42;// 長崎県
}
elseif (preg_match('/^86/', $zip)) {
$pref = 43;// 熊本県
}
elseif (preg_match('/^87/', $zip)) {
$pref = 44;// 大分県
}
elseif (preg_match('/^88/', $zip)) {
$pref = 45;// 宮崎県
}
elseif (preg_match('/^89/', $zip)) {
$pref = 46;// 鹿児島県
}
elseif (preg_match('/^90/', $zip)) {
$pref = 47;// 沖縄県
}
return $pref;
}
ついでに都道府県の配列。
$pref_arr = array(
1 => '北海道',
2 => '青森県',
3 => '岩手県',
4 => '宮城県',
5 => '秋田県',
6 => '山形県',
7 => '福島県',
8 => '茨城県',
9 => '栃木県',
10 => '群馬県',
11 => '埼玉県',
12 => '千葉県',
13 => '東京都',
14 => '神奈川県',
15 => '新潟県',
16 => '富山県',
17 => '石川県',
18 => '福井県',
19 => '山梨県',
20 => '長野県',
21 => '岐阜県',
22 => '静岡県',
23 => '愛知県',
24 => '三重県',
25 => '滋賀県',
26 => '京都府',
27 => '大阪府',
28 => '兵庫県',
29 => '奈良県',
30 => '和歌山県',
31 => '鳥取県',
32 => '島根県',
33 => '岡山県',
34 => '広島県',
35 => '山口県',
36 => '徳島県',
37 => '香川県',
38 => '愛媛県',
39 => '高知県',
40 => '福岡県',
41 => '佐賀県',
42 => '長崎県',
43 => '熊本県',
44 => '大分県',
45 => '宮崎県',
46 => '鹿児島県',
47 => '沖縄県'
);