项目中需要一个选择城市名的功能,具体的数据可以到国家统计局的网站上查,直接搜索也有很多,比如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); }
时间: 2024-11-10 06:07:25