PHP中使用asort進(jìn)行中文排序失效的問題處理
PHP中有非常方便的對數(shù)組進(jìn)行重新排序的方法——asort,關(guān)于asort的使用方法可以看 這里 。但是asort對含有中文key的數(shù)組進(jìn)行排序時,有時候并不是按照字母順序。這主要是編碼問題,如果編碼為UTF-8,則不會按照字母順序來排,解決方法是先轉(zhuǎn)換成GBK編碼,排序完再轉(zhuǎn)回UTF-8.
示例:有一個數(shù)組$pass,結(jié)構(gòu)類似為
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== ) )
使用下面的代碼,將會把這個數(shù)組按照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與MYSQL中UTF8 中文排序示例代碼
- PHP與MYSQL中UTF8編碼的中文排序?qū)嵗?/a>
- php數(shù)組中包含中文的排序方法
- PHP讀取數(shù)據(jù)庫并按照中文名稱進(jìn)行排序?qū)崿F(xiàn)代碼
- PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法
- PHP排序之二維數(shù)組的按照字母排序?qū)崿F(xiàn)代碼
- php實現(xiàn)數(shù)組按拼音順序排序的方法
- PHP 數(shù)組排序方法總結(jié) 推薦收藏
- PHP 多維數(shù)組的排序問題 根據(jù)二維數(shù)組中某個項排序
- php 數(shù)組操作(增加,刪除,查詢,排序)等函數(shù)說明
- PHP實現(xiàn)獲取第一個中文首字母并進(jìn)行排序的方法
相關(guān)文章
php實現(xiàn)子字符串位置相互對調(diào)互換的方法
這篇文章主要介紹了php實現(xiàn)子字符串位置相互對調(diào)互換的方法,可實現(xiàn)簡單字符串中兩個子字符串互換的功能,涉及php字符串運算與插入、替換等操作的相關(guān)技巧,需要的朋友可以參考下2016-06-06
PHP使用PDO操作數(shù)據(jù)庫的亂碼問題解決方法
這篇文章主要介紹了PHP使用PDO操作數(shù)據(jù)庫的亂碼問題解決方法,實例分析了編碼設(shè)置及屬性設(shè)置解決亂碼問題的實現(xiàn)技巧,需要的朋友可以參考下2016-04-04
完美解決dedecms中的[html][/html]和[code][/code]問題
完美解決dedecms中的[html][/html]和[code][/code]問題...2007-03-03

