setlocale — сортировка массива PHP с настройкой локали?

Можно ли отсортировать массив PHP с настройкой локали?

Это настройка:

Я делаю интерактивный отсортированный список в PHP. С помощью пользовательского ввода можно указать одну из нескольких категорий (столбцов) для прямой сортировки (имя, место жительства и т. Д.). Это я разработал с помощью array_multisort() функция.

Следующее препятствие. Список составлен на шведском языке, и пользователь будет ожидать шведский алфавитный порядок: abcdefghijklmnopqrstuvxyzåäö. Прямо сейчас переводчик сортирует слова как не алфавитные и ставит их перед «а». Как исправить?

Я нашел немного разбросанной информации на setlocale(LC_COLLATE, "sv_SV") функция, но отзывы не были восторженными, и мне не удалось понять, как его можно использовать с array_multisort(), Может это? и если да, то как? Есть ли другой путь в php?

Дело в том, что должен быть какой-то способ — на шведских веб-сайтах много того, где применяется шведский порядок сортировки. Можно ли это сделать с помощью php?

2

Решение

использование SORT_LOCALE_STRING в качестве третьего параметра array_multisort() функция. PHP ducuments говорят:

SORT_LOCALE_STRING — сравнивать элементы как строки, основываясь на текущей локали. Он использует локаль, которая может быть изменена с помощью setlocale ()

пример:

$result=array_multisort( $input_array, SORT_ASC, SORT_LOCALE_STRING);
1

Другие решения

Сожалею. Это была не проблема, я думал, что это было. Текст, написанный в моем коде, сортируется как-то правильно (только то, что ä неправильно сортируется до å, но это кажется ошибкой в ​​спецификациях (?)).

Во всяком случае, проблема, очевидно, с кодировкой символов. Проблема возникает, когда текст извлекается из базы данных контактной формы 7 (плагин WordPress). Предположительно он имеет другую кодировку и нуждается в преобразовании.

Спасибо, в любом случае.

0

По вопросам рекламы [email protected]