Вы можете перемещать оба списка одновременно с помощью zip:
for (x, y) in zip(list1, list2): do_something
Функция zip дает вам [(1,5), (2,6), (3,7), (4,8)]
, поэтому в итерации цикла N вы получаете N-й элемент каждого списка.
// Grab all files from the desired folder
$files = glob( './test/*.*' );
// Sort files by modified time, latest to earliest
// Use SORT_ASC in place of SORT_DESC for earliest to latest
array_multisort(
array_map( 'filemtime', $files ),
SORT_NUMERIC,
SORT_ASC,
$files
);
echo $files[0] // the latest modified file should be the first.
Взято с этого веб-сайта
Удачи
РЕДАКТИРОВАТЬ: Чтобы исключить файлы в каталоге, чтобы уменьшить количество ненужных поисков:
$files = glob( './test/*.*' );
$exclude_files = array('.', '..');
if (!in_array($files, $exclude_files)) {
// Sort files by modified time, latest to earliest
// Use SORT_ASC in place of SORT_DESC for earliest to latest
array_multisort(
array_map( 'filemtime', $files ),
SORT_NUMERIC,
SORT_ASC,
$files
);
}
echo $files[0];
Это полезно, если вы знаете что искать и что можно исключить.
У этого подхода есть некоторые очевидные недостатки - порождение дополнительного процесса, зависимости от ОС и т. Д., Но для файлов размером 300 КБ это может быть быстрее, чем попытка итерации в PHP:
exec('dir /TW /O-D /B', $output);
var_dump($output[0]);
FWIW, вам действительно следует избегать размещения 300 000 файлов в одном каталоге. Это не очень хорошо работает в большинстве файловых систем.