我有一个注册脚本和多语言。我必须使用gettext函数进行翻译。
$countries = $locationObj->getCountries();
此代码从数据库获取国家/地区列表。在数据库中,国家名称是土耳其对于我的其他语言支持,我必须使用gettext。
$ countries是一个如下所示的数组
Array
(
[0] => Array
(
[id] => 4
[code] => UM
[country] => ABD Küçük Harici Adaları
[currency] => USD
[area_code] => +1
)
[1] => Array
(
[id] => 5
[code] => VI
[country] => ABD Virjin Adaları
[currency] => USD
[area_code] => +1 340
)
[2] => Array
(
[id] => 1
[code] => AF
[country] => Afganistan
[currency] => AFN
[area_code] => +93
)
如果我在foreach循环中使用gettext函数来获取选项。国家/地区名称字母顺序将被打破。首先,我必须翻译国家名称,我必须为每个循环创建。
我可以将array_map函数用于gettext吗?这是一个简单的方法。或者我是否必须创建foreach循环并创建新数据并对其进行排序?
答案 0 :(得分:1)
我最后找到了解决方案。我正在使用array_multisort我在解析选项之前创建了另一个foreach循环。在这个循环中,我使用了gettext。
foreach($ countries as $ key => $ country){ $ countryNames [$ key] = _($ country ['country']); } array_multisort($ countryNames,SORT_STRING,$ countries);
现在我的$ countries数组已经过翻译排序了。
解析选项时,我再次使用gettext函数进行翻译。
答案 1 :(得分:0)
数组有很多排序函数(甚至适用于多维级别)。
例如,你可以使用ksort(它是manteins索引关联)。
数组的排序命令的完整列表: - > http://php.net/manual/en/array.sorting.php