<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="php的数组中包含中文（gbk，gb2312，utf8）的排序方法 asort" id="card1">
<p> 游客</p><p>
标题:php的数组中包含中文（gbk，gb2312，utf8）的排序方法 asort<br/>
正文:<br/>
php数组中文排序，文件格式一般用utf8，直接用asort排序不行。若是gbk和gb2312可以。这跟编码有关。gbk和gb2312本身的编码就是用拼音排序的。代码如下:function utf8_array_asort(&amp;amp;$array) {<br/>if(!isset($array) || !is_array($array)) {<br/>  return false;<br/>}<br/>foreach($array as $k=&amp;gt;$v) {<br/>  $array[$k] = iconv('UTF-8', 'GB2312',$v);<br/>}<br/>asort($array);<br/>foreach($array as $k=&amp;gt;$v) {<br/>  $array[$k] = iconv('GB2312', 'UTF-8', $v);<br/>}<br/>return true;<br/>}使用例子：代码如下:$abc = array('a'=&amp;gt;'郑', 'b'=&amp;gt;'州','c'=&amp;gt;'网','d'=&amp;gt;'建','e'=&amp;gt;'f','f'=&amp;gt;'你','z'=&amp;gt;'好');<br/>utf8_array_asort($abc);<br/>print_r($abc);但是使用这个函数发现，有些文字会出错，可能是utf8编码认不出某些字导致的“非法字符”，据了解GBK字符集比较大，换成GBK，再加上IGNORE忽略掉不认识的字符 ，改成下面这样代码如下:private function utf8_array_asort(&amp;amp;$array) {<br/>  if(!isset($array) || !is_array($array)) {<br/>   return false;<br/>  }<br/>  foreach($array as $k=&amp;gt;$v) {<br/>   $array[$k] = iconv('UTF-8', 'GBK//IGNORE',$v);<br/>  }<br/>  asort($array);<br/>  foreach($array<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1742&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1742&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1742&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1742&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1742">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1742">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>