Преобразуйте коды страны

На кодах страны существует несколько методов.

У меня есть список кодов с 3 символами, как на этой странице:

http://www.fina.org/H2O/index.php?option=com_content&view=category&id=93:asia&Itemid=638&layout=default

Существует ли простой способ преобразовать их в 2 символа? Как "PT" от "POR" для Португалии.

Стандарт для 2 символов - http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

Спасибо.

15
задан Gumbo 11 August 2010 в 08:27
поделиться

5 ответов

Легкого пути не будет, потому что в названиях стран нет определенной схемы. Например, PT из POR для Португалия , и это также может быть другим для других стран. Возможно, вы захотите создать массив для хранения двух букв для каждой страны.

Пример:

$countries = array('PT' => 'Portugal', 'UK' => 'United Kingdom');
-1
ответ дан 1 December 2019 в 00:49
поделиться

Аналогичный вопрос есть в gis.stackexchange.
https://gis.stackexchange.com/questions/603/is-a-country-state-city-database-available
Думаю, вы получите больше информации, разместив эти вопросы в ГИС. http://gis.stackexchange.com

2
ответ дан 1 December 2019 в 00:49
поделиться

Хотя это может быть длительным и болезненным методом, он вполне может стоить того, чтобы вы написали функцию, которую вы можете сохранить вечно, возможно, это укажет вам правильное направление:

<?php
function myCodes($in, $type){
$out = "";
$long = array('portugal', 'united kingdom');
$short = array('pt', 'uk');
$in = strtolower(trim($in));
switch($type){
case 'long':$out = str_replace($short, $long, $in);break;
case 'short':$out = str_replace($long, $short, $in);break;
}
echo $out;
}

echo myCodes('United Kingdom', 'short'); //this will echo 'uk'
echo myCodes('UK', 'long'); //this will echo 'united kingdom'

?>

Это, конечно, будет иметь несколько недостатков, таких как обеспечение совпадения позиций для длинных и коротких массивов, и вам также необходимо поддерживать эту функцию.

1
ответ дан 1 December 2019 в 00:49
поделиться

$ mapping ['POR'] = 'PT';
$ shortcode = $ mapping [$ longcode];

0
ответ дан 1 December 2019 в 00:49
поделиться

Без выполнения фактического поиска нет простого способа: AFG (Афганистан) становится AF, а AND (Андорра) становится AD, а BLR (Беларусь) становится BY ... поэтому вы не можете выполнять какие-либо простые манипуляции с символами для преобразования.

Я бы посоветовал использовать таблицу кодов стран или добавить дополнительный столбец в любую существующую таблицу, чтобы у вас были оба кода.

3
ответ дан 1 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: