Question: Done some searching, but can't seem to find the exact answer I'm looking for. 

I'd like to pull in files with numbered filenames using 'scandir($dir)', but have them sort properly. For example, file names are:

```none
1-something.ext

2-something-else.ext

3-a-third-name.ext

.

.

.

10-another-thing.ext

11-more-names.ext

```

The problem I'm having is that 10-a-fourth-thing.ext will show before 2-something-else.ext. I'd like to find a better way of solving this issue than introducing leading '0' in front of all file names.

Any thoughts? Thanks.

Answer: 
[`natsort`](http://www.php.net/manual/en/function.natsort.php) does exactly what you need.

`sort` with `SORT_NUMERIC` will also work for filenames that start with numbers, but it will break if there are also names that have no numbers in front (all non-number-prefixed names will be sorted before number-prefixed names, and their order relative to one another will be random instead of alphabetic).
If you want to reassign keys (which natsort does not do), use usort() combined with strnatcmp() or strnatcasecmp():

```
usort($arr, 'strnatcmp'); // Or 'strnatcasecmp' for case insensitive

```