php中的sort / rsort问题

时间:2012-10-24 23:18:19

标签: php

我遇到排序功能问题。

当我尝试在数组中排序时,得到了错误的顺序结果..例如:

$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,但总是返回错误的订单。 你知道为什么?或解决方法? 谢谢!

2 个答案:

答案 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