数组排序区分大小写

Bor*_*mas 2 php sorting

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

除此之外的逻辑是什么?

Tim*_* S. 11

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

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

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

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

  • 嗯,这很简单!`ksort()` 默认使用 `SORT_REGULAR` 作为排序标志。该标志使用字符 ascii 代码对字符进行排序,其中大写字符的值低于小写字符的值,如[此处](http://www.w3schools.com/tags/ref_ascii.asp)所示。这就解释了为什么! (2认同)