首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对使用非英文字体的记录进行排序的可能方法?

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

Stack Overflow用户
提问于 2012-08-06 16:49:19
回答 2查看 111关注 0票数 0

我在我的应用程序中使用Devnagari字体。键盘上的每个英文键代表Devnagari中的某些字符。例如,我的英文名字是Sabin,但当我使用devnagari字体时,它将是没有引号的";lag“。并且记录以这种方式保存在数据库中。现在我在整理记录时遇到了问题。

在devnagari中,首先出现的是Devnagari元音,然后是devnagari字母。像c,cf,O,O{,p,pm,......每个字母之间用逗号分隔,然后是从first,s,v,u,#,...开始的等同的devnagari字母依此类推,每一个都用逗号分隔。

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

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

代码语言:javascript
复制
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
    )

)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-06 17:03:17

您正在滥用文本编码。您将文本另存为用于其他内容的代码点,并且仅使用将原始英文字母呈现为其他内容的字体。这完全是错误的做法。

有几种编码可以让您将Devanagari保存为实际的Devanagari字符。我是supported in Unicode。将文本保存为实际的梵文字符,不要过载现有的英语代码点,并依赖于损坏的字体。然后,您将获得支持Unicode的任何内容的排序功能和许多其他内容。

尽管如此,还是有一个简单的usort示例:

代码语言:javascript
复制
usort($array, function ($a, $b) {
    static $order = array('M', 'A', ';', 'L', ...);
    return array_search($a, $order) - array_search($b, $order);
});
票数 5
EN

Stack Overflow用户

发布于 2012-08-09 11:44:35

嗯,经过一次尝试,我才让它工作起来。感谢@deceze和@dualed。下面是我所做的

代码语言:javascript
复制
usort($array, function ($a, $b) {
    static $order = array('c', ';', 'g', 'L');
    return array_search($a->first_name, $order) - array_search($b->first_name, $order);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11825097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档