Для управления файлами я использую create_function
для сортировки папок (каталогов) сначала, а затем файлов. Но похоже, что create_function
устарел в php 7.2.
Итак, как я могу правильно использовать usort
ниже?
$files = array_diff( scandir($dir), array(".", "..", "tmp") );
usort ($files, create_function ('$a,$b', '
return is_dir ($a)
? (is_dir ($b) ? strnatcasecmp ($a, $b) : -1)
: (is_dir ($b) ? 1 : (
strcasecmp (pathinfo ($a, PATHINFO_EXTENSION), pathinfo ($b, PATHINFO_EXTENSION)) == 0
? strnatcasecmp ($a, $b)
: strcasecmp (pathinfo ($a, PATHINFO_EXTENSION), pathinfo ($b, PATHINFO_EXTENSION))
))
;
'));
create_function
. - person Barmar   schedule 11.05.2019usort ($files, function ($a,$b) { return is_dir ($a) ? (is_dir ($b) ? strnatcasecmp ($a, $b) : -1) : (is_dir ($b) ? 1 : ( strcasecmp (pathinfo ($a, PATHINFO_EXTENSION), pathinfo ($b, PATHINFO_EXTENSION)) == 0 ? strnatcasecmp ($a, $b) : strcasecmp (pathinfo ($a, PATHINFO_EXTENSION), pathinfo ($b, PATHINFO_EXTENSION)) )) ; });
- person mudraya katusha   schedule 11.05.2019