我遇到排序功能问题。
当我尝试在数组中排序时,得到了错误的顺序结果..例如:
$arr = array("Cero","Uno","dos","Tres","Cuatro","Cinco","Seis","Siete");
sort($arr);
foreach($arr as $key => $value){
echo $key . "=>" . $value . "<br/>";
}
写:
0=>Cero
1=>Cinco
2=>Cuatro
3=>Seis
4=>Siete
5=>Tres
6=>Uno
7=>dos //wtf, last item are "d" ?!
如果我尝试使用rsort,我得到了这个:
0=>dos //again, last item are "d" ?!
1=>Uno
2=>Tres
3=>Siete
4=>Seis
5=>Cuatro
6=>Cinco
7=>Cero
我尝试了asort,arsort,sort和rsort,但总是返回错误的订单。 你知道为什么?或解决方法? 谢谢!
答案 0 :(得分:6)
你想传递旗帜以忽略大小写。
sort($arr, SORT_FLAG_CASE);
答案 1 :(得分:1)
取决于您的php版本,您可以使用sort()或natcasesort()
自php5.4发布以来,有一个名为SORT_FLAG_CASE的标志,你可以将它与sort函数一起使用
sort($array, SORT_FLAG_CASE);
因为不是每个服务器运行php 5.4,你至少应该知道在那之前,你使用了natcasesort函数
natcasesort($array);
有关详情,请查看php.net manual