1

我在使用排序功能时遇到了麻烦。

当我尝试在数组中排序时,订单结果不好。例如:

$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,但总是返回错误的顺序。你知道为什么?或修复它的方法?谢谢!

4

2 回答 2

6

你想传递标志来忽略大小写。

sort($arr, SORT_FLAG_CASE);
于 2012-10-24T23:21:15.470 回答
1

根据您的 php 版本,您可以使用 sort() 或 natcasesort()

自 php5.4 发布以来,有一个名为 SORT_FLAG_CASE 的标志,您可以将其与排序功能一起使用

sort($array, SORT_FLAG_CASE);

因为不是每个服务器都运行 php 5.4,你至少应该知道在此之前,你使用了 natcasesort 函数

natcasesort($array);

有关更多信息,请查看php.net 手册

于 2012-10-24T23:29:00.180 回答