php数组中包含中文的排序方法
functionutf8_array_asort(&$array){
if(!isset($array)||!is_array($array)){
returnfalse;
}
foreach($arrayas$k=>$v){
$array[$k]=iconv('UTF-8','GB2312',$v);
}
asort($array);
foreach($arrayas$k=>$v){
$array[$k]=iconv('GB2312','UTF-8',$v);
}
returntrue;
}使用例子:
$abc=array('a'=>'猜','b'=>'我','c'=>'哦','d'=>'棍','e'=>'f','f'=>'爸','z'=>'州');
utf8_array_asort($abc);
print_r($abc);但是使用这个函数发现,有些文字会出错,可能是utf8编码认不出某些字导致的“非法字符”,据了解GBK字符集比较大,换成GBK,再加上IGNORE忽略掉不认识的字符,改成下面这样
privatefunctionutf8_array_asort(&$array){
if(!isset($array)||!is_array($array)){
returnfalse;
}
foreach($arrayas$k=>$v){
$array[$k]=iconv('UTF-8','GBK//IGNORE',$v);
}
asort($array);
foreach($arrayas$k=>$v){
$array[$k]=iconv('GBK','UTF-8//IGNORE',$v);
}
returntrue;
}