Ok, this is the closest I have gotten so far.
$state = preg_match('/^[a-z- ]+$/i', $_POST['state']);
if(!empty($state) && $_POST['countries'] == 'United States of America (USA)') {
$valid_states = array("any", "", "AL", "Alabama", "AK", "Alaska", "AZ", "Arizona", "AR", "Arkansas", "CA", "California", "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", "RI", "Rhode Island", "SC", "South Carolina", "SD", "South Dakota", "TN", "Tennessee", "TX", "Texas", "UT", "Utah", "VT", "Vermont", "VA", "Virginia", "WA", "Washington", "WV", "West Virginia", "WI", "Wisconsin", "WY", "Wyoming");
if (!in_array($_POST['state'], $valid_states)) {
$error[] = "State must be a US State when United States is selected as the country.";
}
} elseif (!empty($state) && !$state) {
$error[] = "State name not valid";
}
$valid_countries = Array("Afghanistan", "AF", "Albania", "AL", "Algeria", "DZ", "American Samoa", "AS", "Andorra", "AD", "Angola", "AO", "Anguilla", "AI", "Antarctica", "AQ", "Antigua and Barbuda", "AG", "Argentina", "AR", "Armenia", "AM", "Aruba", "AW", "Australia", "AU", "Austria", "AT", "Azerbaijan", "AZ", "Bahamas", "BS", "Bahrain", "BH", "Bangladesh", "BD", "Barbados", "BB", "Belarus", "BY", "Belgium", "BE", "Belize", "BZ", "Benin", "BJ", "Bermuda", "BM", "Bhutan", "BT", "Bolivia", "BO", "Bosnia and Herzegovina", "BA", "Botswana", "BW", "Bouvet Island", "BV", "Brazil", "BR", "British Indian Ocean Territory", "IO", "British Virgin Islands", "VG", "Brunei", "BN", "Bulgaria", "BG", "Burkina Faso", "BF", "Burma", "MM", "Burundi", "BI", "Cambodia", "KH", "Cameroon", "CM", "Canada", "CA", "Cape Verde", "CV", "Cayman Islands", "KY", "Central African Republic", "CF", "Chad", "TD", "Chile", "CL", "China", "CN", "Christmas Island", "CX", "Cocos (Keeling) Islands", "CC", "Colombia", "CO", "Comoros", "KM", "Congo Democratic Republic", "CD", "Congo Republic (Middle Congo)", "CG", "Cook Islands", "CK", "Costa Rica", "CR", "Croatia", "HR", "Cuba", "CU", "Cyprus", "CY", "Czech Republic", "CZ", "Denmark", "DK", "Djibouti", "DJ", "Dominica", "DM", "Dominican Republic", "DO", "East Timor", "TP", "Ecuador", "EC", "Egypt", "EG", "El Salvador", "SV", "Equitorial Guinea", "GQ", "Eritrea", "ER", "Estonia", "EE", "Ethiopia", "ET", "Falkland Islands", "FK", "Faroe Islands", "FO", "Fiji", "FJ", "Finland", "FI", "France", "FR", "French Guiana", "GF", "French Polinesia", "PF", "French Southern and Antarctic Territories", "TF", "Gabon", "GA", "Gambia", "GM", "Georgia", "GE", "Germany", "DE", "Ghana", "GH", "Gibraltar", "GI", "Great Britain", "UK", "Greece", "GR", "Greenland", "GL", "Grenada", "GD", "Guadeloupe", "GP", "Guam", "GU", "Guatemala", "GT", "Guernsey", "GG", "Guinea", "GN", "Guinea Bissau", "GW", "Guyana", "GY", "Haiti", "HT", "Heard Island and McDonald Islands", "HM", "Honduras", "HN", "Hong Kong", "HK", "Hungary", "HU", "Iceland", "IS", "India", "IN", "Indonesia", "ID", "Iran", "IR", "Iraq", "IQ", "Ireland", "IE", "Isle of Man", "IM", "Israel", "IL", "Italy", "IT", "Ivory Coast", "CI", "Jamaica", "JM", "Japan", "JP", "Jersey", "JE", "Jordan", "JO", "Kazakhstan", "KZ", "Kenya", "KE", "Kiribati", "KI", "Korea, North", "KP", "Korea, South", "KR", "Kuwait", "KW", "Kyrgystan", "KG", "Laos", "LA", "Latvia", "LV", "Lebanon", "LB", "Lesotho", "LS", "Liberia", "LR", "Libya", "LY", "Liechtenstein", "LI", "Lithuania", "LT", "Luxembourg", "LU", "Macau", "MO", "Macedonia", "MK", "Madagascar", "MG", "Malawi", "MW", "Malaysia", "MY", "Maldives", "MV", "Mali", "ML", "Malta", "MT", "Marshall Islands", "MH", "Martinique", "MQ", "Mauritania", "MR", "Mauritius", "MU", "Mayotte", "YT", "Mexico", "MX", "Micronesia Federal States", "FM", "Moldova", "MD", "Monaco", "MC", "Mongolia", "MN", "Montserrat", "MS", "Morocco", "MO", "Mozambique", "MZ", "Myanmar", "MM", "Namibia", "NA", "Nauru", "NR", "Nepal", "NP", "Netherlands", "NL", "Netherlands Antilles", "AN", "New Caledonia", "NC", "New Zeland", "NZ", "Nicaragua", "NI", "Niger", "NE", "Nigeria", "NG", "Niue", "NU", "Norfolk Island", "NF", "Northern Mariana Islands", "MP", "North Korea", "KP", "Norway", "NO", "Oman", "OM", "Pakistan", "PK", "Palau", "PW", "Palestine", "PS", "Panama", "PA", "Papua New Guinea", "PG", "Paraguay", "PY", "Peru", "PE", "Philippines", "PH", "Pitcairn Island", "PN", "Poland", "PL", "Portugal", "PT", "Puerto Rico", "PR", "Qatar", "QA", "Reunion", "RE", "Romania", "RO", "Russia", "RU", "Rwanda", "RW", "Saint Helena", "SH", "Saint Kitts & Nevis", "KN", "Saint Lucia", "LC", "Saint Pierre and Miquelon", "PM", "Saint Vincent and The Grenadines", "VC", "Samoa", "WS", "San Marino", "SM", "Sao Tome and Principe", "ST", "Saudi Arabia", "SA", "Senegal", "SN", "Serbia and Montenegro (Yugoslavia)", "YU", "Seychelles", "SC", "Sierra Leone", "SL", "Singapore", "SG", "Slovakia", "SK", "Slovenia", "SI", "Solomon Islands", "SB", "Somalia", "SO", "South Africa", "ZA", "South Korea", "KR", "South Georgia and the South Sandwich Islands", "GS", "Spain", "ES", "Sri Lanka", "LK", "Sudan", "SD", "Suriname", "SR", "Svalbard (Spitzbergen) and Jan Mayen Islands", "SJ", "Swaziland", "SZ", "Sweden", "SE", "Switzerland", "CH", "Syria", "SY", "Taiwan", "TW", "Tajikistan", "TJ", "Tanzania", "TZ", "Thailand", "TH", "Togo", "TG", "Tokelau", "TK", "Tonga", "TO", "Trinidad & Tobago", "TT", "Tromelin Island", "TE", "Tunisia", "TN", "Turkey", "TR", "Turkmenistan", "TM", "Turks and Caicos Islands", "TC", "Tuvalu", "TV", "Uganda", "UG", "Ukraine", "UA", "United Arab Emirates", "AE", "United Kingdom (Great Britain)", "UK", "United States of America (USA)", "US", "United States Minor Outlying Islands", "UM", "Uruguay", "UY", "Uzbekistan", "UZ", "Vanuatu", "VU", "Vatican City", "VA", "Venezuela", "VE", "Vietnam", "VN", "Virgin Islands (British)", "VI", "Virgin Islands (United States)", "VQ", "Wallis and Fortuna Islands", "WF", "Western Sahara", "EH", "Yemen", "YE", "Zaire", "ZR", "Zambia", "ZM", "Zimbabwe", "ZW");
if (!in_array($_POST['countries'], $valid_countries)) {
$error[] = "Country not valid";
}