日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php 按汉字拼音排序,PHP数组排序关于按中文拼音排序的问题

發(fā)布時(shí)間:2023/12/20 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 按汉字拼音排序,PHP数组排序关于按中文拼音排序的问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這天做個(gè)頁面,需要將圖片表里面圖片的標(biāo)簽拉出來拆分好后去重按自然排序。結(jié)果很囧,應(yīng)該排序的結(jié)果是0-9-A-z-阿-中,但是中文部分就是很亂。再找問題,結(jié)果發(fā)現(xiàn)自然排序是按照字符編碼的順序來排列。由于當(dāng)前頁面是UTF-8編碼,UTF-8大家應(yīng)該清楚吧,我稱為是“電腦碼”,給電腦看的~汗…… 如果換成GBK或者GB2312編碼就不會(huì)這樣了,這跟漢字在字符集的編碼有關(guān)。比如”人”這個(gè)字,在GBK和GB2312中就是按它的拼音”ren”的字母順序排到第N個(gè)位置,而UTF-8編碼就不是這樣了(沒有具體研究怎么排的)。OK 知道原因就簡單了,排序前將字符轉(zhuǎn)到GBK,排序完了再轉(zhuǎn)回來就OK。

$this->db->select(‘#imgs’,”tags”,”,”);//相當(dāng)于查詢imgs表中所有的tags字段

$tags = $this->db->getAll();//獲得查詢結(jié)果

$tagslist = $tlist = array();

foreach ($tags as $tagarray){

$tag = explode(‘ ‘,$tagarray[‘tags’]);//字段是多個(gè)標(biāo)簽組成的字符串,這里分解下

foreach($tag as $t){

if(!in_array($t,$tagslist) && !empty($t)){//去重去空

$t = iconv(‘UTF-8’, ‘GBK’, $t);

$tagslist[] = $t;//得到標(biāo)簽數(shù)組,GBK編碼

}

}

}

asort($tagslist);//排序數(shù)組 ,可以用別的自然排序函數(shù)natsort,natcasesort

foreach($tagslist as $list){

$list = iconv( ‘GBK’, ‘UTF-8’,$list);

if(!in_array($list,$tlist)){//轉(zhuǎn)回來仍然要去重

$tlist[]=$list;//這里重新給個(gè)數(shù)組就是為了獲得新的KEY,后面模板輸出要用到換行

}

}

自由轉(zhuǎn)載,轉(zhuǎn)載請注明: 轉(zhuǎn)載自WEB開發(fā)筆記 www.chhua.com

本文鏈接地址: PHP數(shù)組排序關(guān)于按中文拼音排序的問題 http://www.chhua.com/web-note620

隨機(jī)筆記

更多

總結(jié)

以上是生活随笔為你收集整理的php 按汉字拼音排序,PHP数组排序关于按中文拼音排序的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。