Php 数组按键排序。

Php 数组按键排序。,php,arrays,sorting,Php,Arrays,Sorting,我有一个如下数组 $versions = array ( '0.9.md5' => '/var/www/md5_test/0.9.md5', '1.0.0.md5' => '/var/www/md5_test/1.0.0.md5', '1.0.1.md5' => '/var/www/md5_test/1.0.1.md5', '1.0.2.md5' => '/var/www/md5_test/1.0.2.md5', '1.0.3.md

我有一个如下数组

$versions = array
(
    '0.9.md5' => '/var/www/md5_test/0.9.md5',
    '1.0.0.md5' => '/var/www/md5_test/1.0.0.md5',
    '1.0.1.md5' => '/var/www/md5_test/1.0.1.md5',
    '1.0.2.md5' => '/var/www/md5_test/1.0.2.md5',
    '1.0.3.md5' => '/var/www/md5_test/1.0.3.md5',
    '1.0.9.1.md5' => '/var/www/md5_test/1.0.9.1.md5',
    '1.0.9.10.1.md5' => '/var/www/md5_test/1.0.9.10.1.md5',
    '1.0.9.10.md5' => '/var/www/md5_test/1.0.9.10.md5',
    '1.1.3.md5' => '/var/www/md5_test/1.1.3.md5',
    '1.0.9.2.md5' => '/var/www/md5_test/1.0.9.2.md5',
    '1.0.9.3.md5' => '/var/www/md5_test/1.0.9.3.md5',
    '1.0.9.8.md5' => '/var/www/md5_test/1.0.9.8.md5',
    '1.0.9.9.1.md5' => '/var/www/md5_test/1.0.9.9.1.md5',
    '1.0.9.9.md5' => '/var/www/md5_test/1.0.9.9.md5',
    '1.0.9.md5' => '/var/www/md5_test/1.0.9.md5',
    '1.1.0.md5' => '/var/www/md5_test/1.1.0.md5',
    '1.1.1.md5' => '/var/www/md5_test/1.1.1.md5',
    '1.1.2.md5' => '/var/www/md5_test/1.1.2.md5',
);
在这个数组中,我想按键对其进行排序。我搜索过

例如:它的顺序应该是:
1.0.9.md5,1.0.9.1.md5,1.0.9.10.md5、1.0.9.10.1.md5

我试过了

ksort($versions)

但是我不能得到我想要的东西。

删除“.md5”->ksort()->再次添加“.md5”

结果:

Array
(
    [0.9.md5] => /var/www/md5_test/0.9.md5
    [1.0.0.md5] => /var/www/md5_test/1.0.0.md5
    [1.0.1.md5] => /var/www/md5_test/1.0.1.md5
    [1.0.2.md5] => /var/www/md5_test/1.0.2.md5
    [1.0.3.md5] => /var/www/md5_test/1.0.3.md5
    [1.0.9.md5] => /var/www/md5_test/1.0.9.md5
    [1.0.9.1.md5] => /var/www/md5_test/1.0.9.1.md5
    [1.0.9.10.md5] => /var/www/md5_test/1.0.9.10.md5
    [1.0.9.10.1.md5] => /var/www/md5_test/1.0.9.10.1.md5
    [1.0.9.2.md5] => /var/www/md5_test/1.0.9.2.md5
    [1.0.9.3.md5] => /var/www/md5_test/1.0.9.3.md5
    [1.0.9.8.md5] => /var/www/md5_test/1.0.9.8.md5
    [1.0.9.9.md5] => /var/www/md5_test/1.0.9.9.md5
    [1.0.9.9.1.md5] => /var/www/md5_test/1.0.9.9.1.md5
    [1.1.0.md5] => /var/www/md5_test/1.1.0.md5
    [1.1.1.md5] => /var/www/md5_test/1.1.1.md5
    [1.1.2.md5] => /var/www/md5_test/1.1.2.md5
    [1.1.3.md5] => /var/www/md5_test/1.1.3.md5
)
删除“.md5”->ksort()->再次添加“.md5”

结果:

Array
(
    [0.9.md5] => /var/www/md5_test/0.9.md5
    [1.0.0.md5] => /var/www/md5_test/1.0.0.md5
    [1.0.1.md5] => /var/www/md5_test/1.0.1.md5
    [1.0.2.md5] => /var/www/md5_test/1.0.2.md5
    [1.0.3.md5] => /var/www/md5_test/1.0.3.md5
    [1.0.9.md5] => /var/www/md5_test/1.0.9.md5
    [1.0.9.1.md5] => /var/www/md5_test/1.0.9.1.md5
    [1.0.9.10.md5] => /var/www/md5_test/1.0.9.10.md5
    [1.0.9.10.1.md5] => /var/www/md5_test/1.0.9.10.1.md5
    [1.0.9.2.md5] => /var/www/md5_test/1.0.9.2.md5
    [1.0.9.3.md5] => /var/www/md5_test/1.0.9.3.md5
    [1.0.9.8.md5] => /var/www/md5_test/1.0.9.8.md5
    [1.0.9.9.md5] => /var/www/md5_test/1.0.9.9.md5
    [1.0.9.9.1.md5] => /var/www/md5_test/1.0.9.9.1.md5
    [1.1.0.md5] => /var/www/md5_test/1.1.0.md5
    [1.1.1.md5] => /var/www/md5_test/1.1.1.md5
    [1.1.2.md5] => /var/www/md5_test/1.1.2.md5
    [1.1.3.md5] => /var/www/md5_test/1.1.3.md5
)

如果这些是版本号,并且您需要按版本进行排序,以便
1.0.9.2.md5
位于
1.0.9.10.1.md5
之前,那么您需要基于语义版本控制的自定义排序:

uksort($versions, 'version_compare');

如果这些是版本号,您需要按版本排序,以便
1.0.9.2.md5
位于
1.0.9.10.1.md5
之前,那么您需要基于语义版本控制的自定义排序:

uksort($versions, 'version_compare');

在此上下文中解释浮动?发布您的尝试您尝试过的内容您尝试过ksort吗?是的@RobFoley,但我没有得到预期的结果那么您期望什么?K排序按字母顺序将此数组按键排序解释此上下文中的浮点值?发布您的尝试您尝试了什么?是否尝试过K排序?是的@RobFoley,但我没有得到预期的结果?您期望什么?ksort使此数组按字母顺序按键排序为什么?ksort使用或不使用.md5后缀做同样的事情你确定吗?不是根据我的测试,为什么?ksort使用或不使用.md5后缀做同样的事情你确定吗?不是根据我的测试。