php 中文键名 问题,PHP中使用asort进行中文排序失效的问题处理
PHP中有非常方便的對數組進行重新排序的方法——asort,關于asort的使用方法可以看 這里 。但是asort對含有中文key的數組進行排序時,有時候并不是按照字母順序。這主要是編碼問題,如果編碼為UTF-8,則不會按照字母順序來排,解決方法是先轉換成GBK編碼,排序完再轉回UTF-8.
示例:有一個數組$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 中文键名 问题,PHP中使用asort进行中文排序失效的问题处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科幻成真?Clone机器人公司将打造克隆
- 下一篇: 早报:曝华为手表将支持卫星通讯 小米汽车