您的位置:首页 > 其它

按首字母排序汉字

2015-08-27 14:35 323 查看
项目中需要一个选择城市名的功能,具体的数据可以到国家统计局的网站上查,直接搜索也有很多,比如http://blog.jjonline.cn/phptech/172.html。

数据是有了,可是汉字怎么按照字母排序呢?

一、前端 js 处理

var a = ["上海","大连","北京","拉萨","天津"];

//返回["北京", "大连", "拉萨", "上海", "天津"]
a.sort(function(a,b){return a.localeCompare(b)});


localeCompare

定义和用法

用本地特定的顺序来比较两个字符串。

语法


stringObject.localeCompare(target)


参数描述
target要以本地特定的顺序与 stringObject 进行比较的字符串。

返回值

说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

那么,具体到真实的 json 对象数组的处理就是:

var a = [
{name: 'a', phone: 1, value: "上海"},
{name: 'b', phone: 5, value: "大连"},
{name: 'd', phone: 3, value: "北京"},
{name: 'c', phone: 4, value: "拉萨"}
];

a.sort(function(a,b){
return a.value.localeCompare(b.value)
});




二、后台 php 处理

foreach ($array as $key=>$value)  {
$new_array[$key] = iconv('UTF-8', 'GBK', $value);
}
asort($new_array);
foreach ($new_array as $key=>$value)  {
$array[$key] = iconv('GBK', 'UTF-8', $value);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: