数组排序区分大小写

时间:2011-11-18 08:24:04

标签: php sorting

我只是想知道为什么ksort()函数首先排序大写键然后默认使用小写键?

除此之外的逻辑是什么?

3 个答案:

答案 0 :(得分:11)

您似乎熟悉ksort()区分大小写的事实。

原因我不清楚,但有一个简单的解决方案。

uksort()允许您使用用户定义的函数对数组进行排序,但是,像我们一样懒惰,我们不想定义自己的函数并使用本机函数。函数strcasecmp()允许我们以不区分大小写的方式比较字符串,并在我们定义自己的函数时以相同的方式工作。当字符串具有较高值时,将返回大于0的值。如果值较小,则返回较小的值,如果相等,则函数返回0.因此,我们uksort()函数的完美候选。

这对您有用:$sorted = uksort($array, 'strcasecmp');

答案 1 :(得分:4)

小于小写值的大写值。

例如: - ascii。 A - 65,a - 97

答案 2 :(得分:2)

因为在订购字母时大写字母“小于”小写字母,标点符号会再次高一些。它是A-Za-z。

对于自然不区分大小写的排序,请使用natcasesort($array);