使用数组映射函数进行Gettext和数组排序

时间:2014-11-17 08:17:13

标签: php arrays sorting gettext

我有一个注册脚本和多语言。我必须使用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循环并创建新数据并对其进行排序?

2 个答案:

答案 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)

数组有很多排序函数(甚至适用于多维级别)。

例如,你可以使用kso​​rt(它是manteins索引关联)。

数组的排序命令的完整列表: - > http://php.net/manual/en/array.sorting.php