3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = [ 'children' => [ 'default.php' => [], 'test.php' => [], 'test.bak' => [], 'default-2.php' => [], 'align-2.php' => [], 'align.tmp' => [], ] ]; uksort($arr['children'], function($a, $b){ $a = pathinfo($a); $b = pathinfo($b); return $a['filename'] == $b['filename'] ? $a['basename'] <=> $b['basename'] : $a['filename'] <=> $b['filename']; }); print_r(array_keys($arr['children']));
Output for 7.4.28, 8.1.23 - 8.1.34, 8.2.10 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Array ( [0] => align.tmp [1] => align-2.php [2] => default.php [3] => default-2.php [4] => test.bak [5] => test.php )

preferences:
73.03 ms | 860 KiB | 4 Q