我在我的应用程序中使用Devnagari字体。键盘上的每个英文键代表Devnagari中的某些字符。例如,我的英文名字是Sabin,但当我使用devnagari字体时,它将是没有引号的";lag“。并且记录以这种方式保存在数据库中。现在我在整理记录时遇到了问题。
在devnagari中,首先出现的是Devnagari元音,然后是devnagari字母。像c,cf,O,O{,p,pm,......每个字母之间用逗号分隔,然后是从first,s,v,u,#,...开始的等同的devnagari字母依此类推,每一个都用逗号分隔。
我遇到的问题是在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
)
)发布于 2012-08-06 17:03:17
您正在滥用文本编码。您将文本另存为用于其他内容的代码点,并且仅使用将原始英文字母呈现为其他内容的字体。这完全是错误的做法。
有几种编码可以让您将Devanagari保存为实际的Devanagari字符。我是supported in Unicode。将文本保存为实际的梵文字符,不要过载现有的英语代码点,并依赖于损坏的字体。然后,您将获得支持Unicode的任何内容的排序功能和许多其他内容。
尽管如此,还是有一个简单的usort示例:
usort($array, function ($a, $b) {
static $order = array('M', 'A', ';', 'L', ...);
return array_search($a, $order) - array_search($b, $order);
});发布于 2012-08-09 11:44:35
嗯,经过一次尝试,我才让它工作起来。感谢@deceze和@dualed。下面是我所做的
usort($array, function ($a, $b) {
static $order = array('c', ';', 'g', 'L');
return array_search($a->first_name, $order) - array_search($b->first_name, $order);
});https://stackoverflow.com/questions/11825097
复制相似问题