Skip to content

Instantly share code, notes, and snippets.

@vlemaire
Created July 11, 2013 09:16
Show Gist options
  • Save vlemaire/5973922 to your computer and use it in GitHub Desktop.
Save vlemaire/5973922 to your computer and use it in GitHub Desktop.
<?php
public static function getStatesByCountryCode($countryCode, $include_empty = true) {
if (empty($countryCode)) {
return false;
}
$countryCode = strtoupper($countryCode);
$states = array(
'US' => array(
'AL' => 'ALABAMA',
'AK' => 'ALASKA',
'AZ' => 'ARIZONA',
'AR' => 'ARKANSAS',
'CA' => 'CALIFORNIA',
'CZ' => 'CANAL ZONE',
'CO' => 'COLORADO',
'CT' => 'CONNECTICUT',
'DE' => 'DELAWARE',
'DC' => 'DISTRICT OF COLUMBIA',
'FL' => 'FLORIDA',
'GA' => 'GEORGIA',
'HI' => 'HAWAII',
'ID' => 'IDAHO',
'IL' => 'ILLINOIS',
'IN' => 'INDIANA',
'IA' => 'IOWA',
'KS' => 'KANSAS',
'KY' => 'KENTUCKY',
'LA' => 'LOUISIANA',
'ME' => 'MAINE',
'MD' => 'MARYLAND',
'MA' => 'MASSACHUSETTS',
'MI' => 'MICHIGAN',
'MN' => 'MINNESOTA',
'MS' => 'MISSISSIPPI',
'MO' => 'MISSOURI',
'MT' => 'MONTANA',
'NE' => 'NEBRASKA',
'NV' => 'NEVADA',
'NH' => 'NEW HAMPSHIRE',
'NJ' => 'NEW JERSEY',
'NM' => 'NEW MEXICO',
'NY' => 'NEW YORK',
'NC' => 'NORTH CAROLINA',
'ND' => 'NORTH DAKOTA',
'OH' => 'OHIO',
'OK' => 'OKLAHOMA',
'OR' => 'OREGON',
'PA' => 'PENNSYLVANIA',
'PR' => 'PUERTO RICO',
'RI' => 'RHODE ISLAND',
'SC' => 'SOUTH CAROLINA',
'SD' => 'SOUTH DAKOTA',
'TN' => 'TENNESSEE',
'TX' => 'TEXAS',
'UT' => 'UTAH',
'VT' => 'VERMONT',
'VI' => 'VIRGIN ISLANDS',
'VA' => 'VIRGINIA',
'WA' => 'WASHINGTON',
'WV' => 'WEST VIRGINIA',
'WI' => 'WISCONSIN',
'WY' => 'WYOMING'
),
'CA' => array(
'AB' => 'ALBERTA',
'BC' => 'BRITISH COLUMBIA',
'MB' => 'MANITOBA',
'NB' => 'NEW BRUNSWICK',
'NF' => 'NEWFOUNDLAND',
'NT' => 'NORTH WEST TERRITORIES',
'NS' => 'NOVA SCOTIA',
'NU' => 'NUNVANU',
'ON' => 'ONTARIO',
'PE' => 'PRINCE EDWARD ISLAND',
'QC' => 'QUEBEC',
'SK' => 'SASKATCHEWAN',
'YT' => 'YUKON'
),
'JP' => array(
'1' => '北海道',
'10' => '群馬県',
'11' => '埼玉県',
'12' => '千葉県',
'13' => '東京都',
'14' => '神奈川県',
'15' => '新潟県',
'16' => '富山県',
'17' => '石川県',
'18' => '福井県',
'19' => '山梨県',
'2' => '青森県',
'20' => '長野県',
'21' => '岐阜県',
'22' => '静岡県',
'23' => '愛知県',
'24' => '三重県',
'25' => '滋賀県',
'26' => '京都府',
'27' => '大阪府',
'28' => '兵庫県',
'29' => '奈良県',
'3' => '岩手県',
'30' => '和歌山県',
'31' => '鳥取県',
'32' => '島根県',
'33' => '岡山県',
'34' => '広島県',
'35' => '山口県',
'36' => '徳島県',
'37' => '香川県',
'38' => '愛媛県',
'39' => '高知県',
'4' => '宮城県',
'40' => '福岡県',
'41' => '佐賀県',
'42' => '長崎県',
'43' => '熊本県',
'44' => '大分県',
'45' => '宮崎県',
'46' => '鹿児島県',
'47' => '沖縄県',
'5' => '秋田県',
'6' => '山形県',
'7' => '福島県',
'8' => '茨城県',
'9' => '栃木県'
)
);
if (!empty($states[$countryCode])) {
$country_states = $states[$countryCode];
// add default value on first place of array
// @see http://fr.php.net/manual/fr/function.array-unshift.php#106570
if ($include_empty)
{
$country_states = array_reverse($country_states, true);
$country_states[] = t('- Select -', array(), array('context' => 'Funnel'));
$country_states = array_reverse($country_states, true);
}
return $country_states;
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment