При разработке приложения столкнулся со следующей проблемой. Имеется БД (SQLITE3) в которой хранятся названия фруктов и сортировка (по алфавиту) названий происходит по регистру, чтобы сделать регистронезависимую сортировку использовал COLLATE NOCASE, однако с кириллицей как выяснилось это не работает. Для php есть модуль интернационализации (Intl) - обёртка для библиотеки ICU, но вот как её использовать понять не могу (русскоязычной информации практически нет). Приложение крутится на XAMPP (Apache + PHP) PHP: $db = new SQLite3('basa.db'); $prepare = $db->prepare("SELECT * FROM fruts ORDER BY name_frut COLLATE NOCASE"); $result = $prepare->execute(); $data = []; while ($res = $result->fetchArray(SQLITE3_ASSOC)) { $data[] = $res; } $db->close() ;
для sqlite используй доп столбец с lower буквами, либо собери данные в массив и отсортируй в пхп скрипте
Всё разобрался PHP: function mysort($a, $b) { $col = new collator('ru_RU'); $arr = array($a['name_frut'], $b['name_frut']); $col->asort($arr, SORT_NATURAL | SORT_FLAG_CASE); return array_pop($arr) == $a['name_frut']; } usort($data, 'mysort');