У меня есть сценарий регистрации и многоязычный. Я должен использовать функцию gettext для перевода.
$countries = $locationObj->getCountries();
Этот код получает список стран из базы данных. В базе данных названия стран являются турецкими. Для поддержки других языков я должен использовать gettext.
$ стран это массив, как показано ниже
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
)
Если я использую функцию gettext внутри цикла foreach для параметров. Алфавитный порядок названий стран будет нарушен. Прежде всего, мне нужно перевести названия стран, которые нужно создать для каждого цикла.
Могу ли я использовать функцию array_map для gettext? Это простой способ. Или я должен создать цикл foreach и создать новый массив данных и сортировать это?
Я нашел решение в конце. Я использую array_multisort И я создаю еще один цикл foreach перед анализом параметров. И в этом цикле я использовал gettext.
foreach ($ страны как $ ключ => $ страна) {
$ countryNames [$ key] = _ ($ country [‘country’]); }
array_multisort ($ countryNames, SORT_STRING, $ страны);
Теперь мой массив $ стран отсортирован для перевода.
При разборе параметров я снова использую функцию gettext для перевода.
Есть много функций сортировки для массивов (даже работает на многомерном уровне).
В качестве примера вы можете использовать ksort (это ассоциация индекса manteins).
Полный список команд сортировки для массива: -> http://php.net/manual/en/array.sorting.php