排序字符串数组取决于之后的最后一次出现。?

时间:2014-07-26 12:58:22

标签: php arrays sorting usort

我有一个数组,其中包含我想按扩展名排序的文件名列表。首先是文件夹然后按扩展名排序的文件:

请考虑以下代码:

    $arr = array("noext","world.b","hello.a","test.z","lol.f");

无论如何,我如何根据扩展名对上面的数组进行排序,以获得如下内容:

    noext
    hello.a
    world.b
    lol.f
    test.z

我知道我可以使用像比较函数一样的东西。但我不知道我该怎么做。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

你确实可以使用usort:

<?php
$arr = array("noext","world.b","hello.a","test.z","lol.f");
usort($arr, function($s1, $s2) {
  $ext1 = pathinfo($s1, PATHINFO_EXTENSION);
  $ext2 = pathinfo($s2, PATHINFO_EXTENSION);
  return strcmp($ext1, $ext2);
});