Я не совсем уверен, если это то, что вы хотите, но я надеюсь, что вам поможет : -)
<?php
$files = glob('*.jpg', GLOB_NOSORT);
//Get filetimes and only include unique filetimes (array_unique below)
$filetimes_arr = array_map('filemtime', $files);
array_multisort($filetimes_arr, SORT_NUMERIC,
SORT_DESC, $files); //latest changed files 0,1...
//This would include only unique filetimes but still having same key as $files
$uniqe_times = array_unique($filetimes_arr);
/*
example:
($files)
0 => string 'brannebrona-e1536697041347-144x150.jpg' (length=38)
1 => string 'brannebrona-e1536697041347-150x150.jpg' (length=38)
2 => string 'brannebrona-e1536697041347-250x150.jpg' (length=38)
3 => string 'brannebrona-e1536697041347-288x300.jpg' (length=38)
4 => string 'brannebrona-e1536697041347-393x311.jpg' (length=38)
5 => string 'brannebrona-e1536697041347-649x250.jpg' (length=38)
6 => string 'brannebrona-e1536697041347-649x580.jpg' (length=38)
7 => string 'brannebrona-e1536697041347.jpg' (length=30)
8 => string 'brannebrona-e1536696975180.jpg' (length=30)
9 => string 'brannebrona-e1536696959513.jpg' (length=30)
10 => string 'brannebrona-1565x580.jpg' (length=24)
11 => string 'brannebrona-250x150.jpg' (length=23)
12 => string 'brannebrona-393x311.jpg' (length=23)
13 => string 'brannebrona-1024x450.jpg' (length=24)
14 => string 'brannebrona-1180x250.jpg' (length=24)
15 => string 'brannebrona-150x150.jpg' (length=23)
16 => string 'brannebrona-150x66.jpg' (length=22)
17 => string 'brannebrona-300x132.jpg' (length=23)
18 => string 'brannebrona-768x337.jpg' (length=23)
19 => string 'brannebrona.jpg' (length=15)
($uniqe_times) (key intact with $files)
0 => int 1536697041
8 => int 1536696975
9 => int 1536696959
10 => int 1536696759
13 => int 1536696758
19 => int 1536696757
(0-7 has the same filesize)
(10-12 has the same filesize)
(13-18 has the same filesize)
Go through the unique filesize array
and include the actual file you want
*/
$use_files = array();
foreach($uniqe_times as $key=>$t) {
$use_files[] = $files[$key];
}
//Go head and use the array $use_files
Файлы, которые вы хотите удалить, - это те, которые вы не хотите использовать ... Поэтому вы можете просто сравнить исходные файлы (массив) с массивом use_files .
Если файл из исходного файла отсутствует в массиве use_files, удалите его.
//Files you don't need (when it's files
//that are not supposed to be used, then delete them)
foreach($files as $f) {
//If this file doesn't exists in use_files array, then remove
if (in_array($f, $use_files) === false) {
$unlink($f);
}
}