如何在PHP中从Key开始按升序对数组进行排序


How to sort an array in ascending order from Key in PHP?

我有以下数组:

$arr = array('XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

现在,我使用一个函数,在上一个数组的基础上生成以下数组。当执行print_r($new_arr)并在pre标签中回显时,这是输出:

Array
(
    [4] => l
    [3] => m
    [2] => s
    [5] => xl
    [1] => xs
)

然而,我正在努力实现这一点:

Array
(
    [1] => xs
    [2] => s
    [3] => m
    [4] => l
    [5] => xl
)

现在,我在S.O上做了一些搜索,找到了关于ksort函数的信息。在PHP文档中的进一步阅读表明,这是要使用的值,但当我按如下方式使用ksort和回显输出时,我只得到值1,而不是我在上一段中期望得到的值数组:

$sorted_arr = ksort($new_arr);

pre标签中回显$sorted_arr时,这是输出(它只是第一个):

1

我真的不确定这里出了什么问题。提前谢谢。

ksort返回一个布尔值,而不是排序数组。改为输出$new_arr变量。

如果您浏览此处的文档。您会发现ksort在成功时返回TRUE,而在失败时则返回FALSE。打印$new_arr,它被作为对ksort()的引用传递。

您要查找的是krsort函数。

请注意,该函数对输入数组进行适当排序,而不是返回排序后的版本。返回值是一个bool,仅表示成功或失败。