排序使用非英文字体的记录的可能方法?

Wat*_*ame 0 php sorting

我在我的应用程序中使用Devnagari字体.键盘中的每个英文键代表Devnagari中的某些字符.例如我的英文名字是萨宾,但是当我使用devnagari字体时,它会是"滞后"而没有引号.并且记录以这种方式保存在数据库中.现在我在排序记录时遇到问题.

在devnagari首先出现的是Devnagari元音,然后是devnagari字母.像c,cf,O,O {,p,pm,...... [每个用逗号分隔]然后devnagari字母等效从第一个开始,s,v,u,#,...等等[每个用逗号分隔].

我遇到的问题是在devnagari中按字母顺序排序名称.任何想法都将受到高度赞赏.谢谢!

编辑:返回的数组如下,我需要使用usort函数.

Array
(
    [0] => stdClass Object
    (
        [user_id] => NLK32437
        [first_name] => ;lag
        [last_name] => %]qL
        [email_address] => test1@msn.com
        [mobile_number] => 9834874582
        [description] => g]kfn
        [date_joined] => 08-AUG-12
        [status] => 1
        [username] => user1
        [userpassword] => 691f9298642af07c2d6ea8fef56074201e077b34
    )

[1] => stdClass Object
    (
        [user_id] => NLK32435
        [first_name] => clgn
        [last_name] => zdf{
        [email_address] => test2@msn.com
        [mobile_number] => 984134354
        [description] => g]kfn
        [date_joined] => 08-AUG-12
        [status] => 1
        [username] => user2
        [userpassword] => 0e025eade868b4b481f41ff7449bc1967261e170
    )

)
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 5

你在滥用文字编码.您将文本保存为用于其他事物的代码点,并且仅使用将原始英文字母呈现为其他内容的字体.这完全是错误的方式.

有几种编码可以让你拯救梵文作为实际的梵文字符.它受Unicode支持.将文本保存为实际的梵文字符,不要超载现有的英文代码点并依赖于破碎的字体.然后,您将获得任何支持Unicode的排序功能和许多其他功能.


usort尽管如此,一个简单的例子:

usort($array, function ($a, $b) {
    static $order = array('M', 'A', ';', 'L', ...);
    return array_search($a, $order) - array_search($b, $order);
});
Run Code Online (Sandbox Code Playgroud)