php - 按键对数组进行数字排序

标签 php arrays array-key ksort

我想对数组进行数字排序,即188、188-1、188-2、222、222-1、222,-2等。这是数组当前的外观:

[188-1] => Array
    (
        [time] => 1
    )

[188-2] => Array
    (
        [time] => 2
    )

[188-3] => Array
    (
        [time] => 3
    )

[188] => Array
    (
        [notes] => frog stand notes
    )

[489] => Array
    (
        [notes] => notes
    )

[489-1] => Array
    (
        [weight] => 10
        [reps] => 30
    )

[489-2] => Array
    (
        [weight] => 20
        [reps] => 30
    )

[489-3] => Array
    (
        [weight] => 30
        [reps] => 30
    )

[492-1] => Array
    (
        [weight] => 500
        [distance] => 100000
    )

[492] => Array
    (
        [notes] => more notes
    )

我尝试了一种ksort ksort($sorted, SORT_DESC);,但它不能与带连字符的键一起使用,除非我做错了什么?

最佳答案

您可以将 uksort() strnatcmp() 用作比较函数:

uksort($array, 'strnatcmp');

关于php - 按键对数组进行数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096277/

相关文章:

php - 创建变量变量的函数不起作用

javascript - 如何正确评估从 Behat 到 Selenium 的 javascript 代码?

php - 将 6 个查询合并为 1 个结果集以进行导出?

php - 在php中使数组键不敏感

php - 条件平均值的平均值

C# HttpWebRequest POST 数据 block

java - 二维数组串联

javascript - 想要从javascript文件调用php文件

php - 如何获取数组中键的位置