[PHP]市町村コード一覧をjsonで吐き出すPHPを作ってみた


市町村から市町村コードへの変換をしたいと思って、市町村コード(正式には全国地方公共団体コード – Wikipedia)の一覧を探してみたのですが上手く見つけられず、でも国土交通省 土地総合情報システムに都道府県内市区町村一覧取得APIを見つけたので、それを使って市町村コードをjsonファイルに吐き出すプログラムをPHPで書いてみた。

<?php
$pref_ids= array(
  "01" => "北海道",
  "02" => "青森県",
  "03" => "岩手県",
  "04" => "宮城県",
  "05" => "秋田県",
  "06" => "山形県",
  "07" => "福島県",
  "08" => "茨城県",
  "09" => "栃木県",
  "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" => "沖縄県"
);  

$city_code = [];
foreach ($pref_ids as $key => $value) {
  $req =  'http://www.land.mlit.go.jp/webland/api/CitySearch?area='.$key;
  $json = file_get_contents($req);
  $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
  $addcode = json_decode($json, true);
  $city_code += array($key =>array("pref-code" => $key , "pref-name" => $value ,'data' => $addcode['data']));
}

$arr = json_encode($city_code,  JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
file_put_contents("citycode.json" , $arr);

でもよく探してみたら、総務省|電子自治体|全国地方公共団体コードに都道府県コード及び市区町村コードのExcelが見つかりました。
こちらの全国地方公共団体コードは6桁ですが、最後の一桁は誤り検出のためのチェックディジットとかなので、末尾一桁を削ってCSVに吐き出せば、当初の目的は果たせたかも(^^;