[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка уркаинских символов
MEAT
Добрый день, господа.
Столкнулся с тем, что не могу найти информацию как решить задачу сортировки украиноязычного массива.
Естественно, что буквы "і, ї, є" в кодировке стоят перед буквой "а", и у меня массив сортируется не корректно.
Подскажите, куда копать?
Вот то, что у меня на данный момент:


function sortArr($a, $b){
return strcmp( encode_items($a['lang']['ua'], 'CP-1251'), encode_items($b['lang']['ua'], 'CP-1251'));
}

usort($arr, 'sortArr');
brevis
intl умеет.

_____________
Чатик в телеге
MEAT
Спасибо за подсказку.
Но, учитывая, что мне надо сортировать многомерный массив, я выбрал вот этот вариант (в том же топике)
function compare($a, $b)
{
$alphabet = 'aąbcćdeęfghijklłmnnoуqprstuvwxyzźż'; // i used polish letters
$a = mb_strtolower($a);
$b = mb_strtolower($b);

for ($i = 0; $i < mb_strlen($a); $i++) {
if (mb_substr($a, $i, 1) == mb_substr($b, $i, 1)) {
continue;
}
if ($i > mb_strlen($b)) {
return 1;
}
if (mb_strpos($alphabet, mb_substr($a, $i, 1)) > mb_strpos($alphabet, mb_substr($b, $i, 1))) {
return 1;
} else {
return -1;
}
}
}

usort($needed_array, 'compare');
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.