我只是想知道为什么ksort()函数首先排序大写键然后默认使用小写键?
除此之外的逻辑是什么?
答案 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);
。