使用 glob(..., GLOB_BRACE) 按文件名排序

Sort by filename with glob(..., GLOB_BRACE)

假设我在当前文件夹中有这些文件:

a.txt
b.txtbis
c.txt
+ other files with other extensions

我想用 PHP glob 在单个列表中列出 .txt.txtbis 文件,我希望结果按文件名排序。不幸的是:

None 已按应有的顺序排序。

如何在 glob 中使用大括号时按文件名对列表进行排序?

Glob 按完整路径名(路径 + 名称 + 扩展名)的字母顺序对文件进行排序。如果只想按(基本)名称排序,可以使用 usort:

$files = glob("*.{txtbis,txt}", GLOB_BRACE);

usort(
  $files, 
  function($a,$b){
    return basename($a) <=> basename($b);
  }
);

var_dump($files);