标签:
拼音排序的规则:
字符串包括特殊字符、数字、英文字符、中文字符等等,排序结果要求,特殊字符排在第一梯队,将其按照首个字符ascii码表进行排序,数字字符排在第二梯队,将首个字符数字按照数字大小排序,英文字符排在第三梯队,按照首字母字母表顺序排序,中文字符排在第三梯队,将按照拼音的首字母排序 。(此处不考虑其他语言的字符)。
数据库查询排序:
查询数据库的时候可以将某个字段按照中文排序。如下,将查询结果以name字段排序
SELECT name FROM crm.b_user where name!=‘‘ order by convert(name using gbk) asc;
PHP函数中排序:
$array=["中国","大家","宝马",‘aaa‘,‘电脑‘,‘工作‘,‘276‘,‘##‘,‘还是‘,‘php‘,‘加班‘,‘shangxian‘,‘hello‘,‘345‘,‘$name1_utf8‘];
1 usort($array,‘mySortArray‘);2 foreach($array as $k=>$v){3 echo $v;4 echo "
";5 }6 function mySortArray($name0,$name1){7 $array=[$name0,$name1];8 foreach ($array as $key=>$value)9 {10 $new_array[$key] = iconv(‘UTF-8‘, ‘GBK‘, $value);11 }12 asort($new_array);13 $array=[];14 foreach ($new_array as $key=>$value)15 {16 $array[]= iconv(‘GBK‘, ‘UTF-8‘, $value);17 }18 if($array[0]===$name1){19 return true;20 }else{21 return false;22 }23 }
排序结果:
##
$name1_utf8
276
345aaa
hello
php
shangxian
宝马
大家
电脑
工作
还是
加班
中国
PHP的类中排序:
框架中通常是一个类,下面是在Yii的控制器类中对返回给客户端的数组按照中文排序。
控制器中排序代码如下:
1 public functionactionJimmy(){2 $arr=[3 [4 ‘id‘=>0,
5 ‘name‘=>‘hello‘
6 ],
7 [8 ‘id‘=>0,
9 ‘name‘=>‘aaa‘
10 ],
11 [12 ‘id‘=>0,
13 ‘name‘=>‘你好‘
14 ],
15 [16 ‘id‘=>0,
17 ‘name‘=>‘电脑‘
18 ],
19 [20 ‘id‘=>0,
21 ‘name‘=>‘法第三方‘
22 ],
23 [24 ‘id‘=>0,
25 ‘name‘=>‘啊啊‘
26 ],
27 [28 ‘id‘=>0,
29 ‘name‘=>‘mm‘
30 ],
31 [32 ‘id‘=>0,
33 ‘name‘=>‘来了‘
34 ],[35 ‘id‘=>0,
36 ‘name‘=>‘安抚‘
37 ],
38 [39 ‘id‘=>0,
40 ‘name‘=>‘偶发‘
41 ],
42 [43 ‘id‘=>0,
44 ‘name‘=>‘爱妃‘
45 ],
46 [47 ‘id‘=>0,
48 ‘name‘=>‘群发‘
49 ],
50 [51 ‘id‘=>0,
52 ‘name‘=>‘字符‘
53 ],
54 [55 ‘id‘=>0,
56 ‘name‘=>‘首个‘
57 ],
58 [59 ‘id‘=>0,
60 ‘name‘=>‘记录‘
61 ],
62 ];63 usort($arr,[$this,‘mySortArray‘]);64
65 $this->jsonReturn(0, ‘排序成功‘, $arr);66 }67 /**68 * 中文字符排序69 * create by jimmy70 * 2016/1/871 * @param $friendA比较函数的第一个72 * @param $friendB比较函数的第二个73 * @return bool返回排序结果74 */
75 public function mySortArray($friendA, $friendB){76 $name0=$friendA[‘name‘];77 $name1=$friendB[‘name‘];78 $array=[$name0,$name1];79 foreach ($array as $key=>$value)80 {81 $new_array[$key] = iconv(‘UTF-8‘, ‘GBK‘, $value);82 }83 asort($new_array);84 $array=[];85 foreach ($new_array as $key=>$value)86 {87 $array[]= iconv(‘GBK‘, ‘UTF-8‘, $value);88 }89 if($array[0]===$name1){90 return true;91 }else{92 return false;93 }94 }
View Code
请求接口返回的json内容为排序后的结果:
1 {2 "code":0,
3 "msg":"排序成功",
4 "data":[5 {6 "id":0,
7 "name":"aaa"
8 },
9 {10 "id":0,
11 "name":"hello"
12 },
13 {14 "id":0,
15 "name":"mm"
16 },
17 {18 "id":0,
19 "name":"啊啊"
20 },
21 {22 "id":0,
23 "name":"爱妃"
24 },
25 {26 "id":0,
27 "name":"安抚"
28 },
29 {30 "id":0,
31 "name":"电脑"
32 },
33 {34 "id":0,
35 "name":"法第三方"
36 },
37 {38 "id":0,
39 "name":"记录"
40 },
41 {42 "id":0,
43 "name":"来了"
44 },
45 {46 "id":0,
47 "name":"你好"
48 },
49 {50 "id":0,
51 "name":"偶发"
52 },
53 {54 "id":0,
55 "name":"群发"
56 },
57 {58 "id":0,
59 "name":"首个"
60 },
61 {62 "id":0,
63 "name":"字符"
64 }65 ]66 }
View Code
标签: