PHP中使用asort进行中文排序失效的问题处理
2014-08-18 00:00
232 查看
PHP中有非常方便的对数组进行重新排序的方法――asort,关于asort的使用方法可以看 这里 。但是asort对含有中文key的数组进行排序时,有时候并不是按照字母顺序。这主要是编码问题,如果编码为UTF-8,则不会按照字母顺序来排,解决方法是先转换成GBK编码,排序完再转回UTF-8.
示例:有一个数组$pass,结构类似为
使用下面的代码,将会把这个数组按照username的拼音排序。
示例:有一个数组$pass,结构类似为
Array ( [0] => stdClass Object ( [username] => 张三 [password] => DQ9uqQW2+UudOsZpQMnyvGG9L+RHZB6LRzBVDvAEL9uOBNf2zTWUnykhZFjhbzCH+LrSslRx9eSqU/n3gSLSUA== ) [1] => stdClass Object ( [username] => 李四 [password] => 2P/3j50ibk1BYmjHL+7/tt0d6LuOQMN9m8klXJCZbcajQtH5749jFTtH17WxiBZ9p425b4KIV/Xdv/7Bu4pJAQ== ) [2] => stdClass Object ( [username] => 王五 [password] => caq8lq0l6uxJPRx+sCBsBFUojSF+ox98gwO6c/AquXQ/y/aj/l/ziEGsXRSV+olcK7iKOJJ4IZZvX8DMPWZRRA== ) [3] => stdClass Object ( [username] => 赵六 [password] => taXp4jX0vO3VoFLyANfGrSjzy76WQQHMnzYAN9CyI20uKxLFMScXrFR3P525eImy0pG5zk8btBJoS/RyMxzJGQ== ) )
使用下面的代码,将会把这个数组按照username的拼音排序。
foreach ($pass as $key) { $key->username = iconv('UTF-8', 'GBK', $key->username); } asort( $pass ); foreach ($pass as $key) { $key->username = iconv('GBK', 'UTF-8', $key->username); }
相关文章推荐
- PHP中使用asort进行中文排序失效的问题处理
- Filter过滤器-使用Filter进行中文问题处理
- thinkphp使用auto_charset 进行处理mssql中文转码问题
- 使用Filter进行中文问题处理
- php关于使用iconv(...)函数对字符进行中文转换时,遇到的一个问题
- java使用Unicode码对中文进行排序
- [转载]java使用Unicode码对中文进行排序
- php tidy处理中文乱码问题
- java使用Unicode码对中文进行排序
- jquery的ajax处理php返回数组,及json_encode中文问题
- linux下使用libiconv进行汉字编码问题的处理-----libiconv静态库的编译
- PHP使用DOM LoadHTML()解析的中文乱码问题
- CSS使用中文注释后造成CSS失效的问题
- php PDO使用bindValue进行模糊查询问题
- PHP使用BC Math 函数处理浮点运算问题
- php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
- java使用Unicode码对中文进行排序
- asp.net c#的传参中经常使用到中文参数的处理,下面的函数可以解决中文参数的问题
- 使用FP10.1 新特性进行全面高效的中文排序
- php处理json时中文问题的解决