已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
3天前关闭。
Improve this question
国家/地区代码有多种方法。
我有一个3个字符的代码列表,如本页所示:
http://www.fina.org/H2O/index.php?option=com_content&view=category&id=93:asia&Itemid=638&layout=default
**是否有简单的方法将其转换为2个字符?**如葡萄牙语“POR”中的“PT”。
9条答案
按热度按时间zzwlnbp81#
您可以从http://country.io/data中获取一些有用的数据文件,这些文件将对您有所帮助:
如果你只想从3个字母的代码转换成2个字母的代码,你可以翻转第一张Map并使用它。你也可以通过组合文件来创建一张从3个字母的代码直接转换成国家名称的Map。下面是一个简单的PHP示例:
olmpazwi2#
我看到七年前有人问过这个问题,今天我遇到了类似的问题,找到了一个很好的解决办法,希望这个答案对以后遇到同样问题的人有帮助。
有一个单独的库,可用于https://github.com/thephpleague/iso3166
那么解决方案就很简单了。$alpha3是一个国家的三个字符的表示,而alpha2是这个国家的两个字符的表示。
$ composer require league/iso3166
$data = (new League\ISO3166\ISO3166)->alpha3($alpha3);
1.数据如下所示:
$countryCodeInTwoChar = $data['alpha2']
yhxst69z3#
如果不进行实际的查找,就没有简单的方法:AFG(阿富汗)变成AF,AND(安道尔)变成AD,BLR(白俄罗斯)变成BY......所以你不能做任何简单的字符操作来转换。
我的建议是使用一个国家代码表,或者在任何现有的表中添加一个额外的列,这样您就可以同时拥有这两个代码。
bwleehnv4#
以上其他答案大多数都不是直接答案,让我试试
我已尝试使用API以下代码将3个字符转换为2个字符的国家/地区代码:
提供的国家代码是2-iso(key):3-iso(value)的形式,所以我不是搜索key,而是按value搜索,如果成功,则返回第一个对应的key。
体重
标准体积
过渡区
BB型
输入
BQ
分析网
ANT
国家代码未在代码列表中定义。u0sqgete5#
基于这里的其他信息,这里有一个完整的功能准备好了:
9vw9lbht6#
虽然这可能是一个冗长而痛苦的方法,但它可能非常值得你编写一个可以永远保存的函数,也许这可以为你指明正确的方向:
这当然会有一些缺点,比如要确保长数组和短数组的位置匹配,并且您还需要维护该函数。
ie3xauqp7#
$Map['POR'] = 'PT';
$短码= $Map[$长码];
ozxc1zmp8#
在ruby中,你可以这样做:(从http://download.geonames.org/export/dump/获取国家信息. txt)
iqxoj9l99#
这不是一个简单的方法,因为国家名称中没有特定的方案。例如,
PT
fromPOR
forPortugal
,这对于其他国家也可能不同。您可能需要创建一个数组,为每个国家保存两个字母。