Как указывали другие, вы можете использовать DoEvents для освобождения процессора для выполнения других действий перед продолжением. Когда я использую DoEvents в цикле, я использую счетчик.
Dim iCounter as Integer
Do Until
' some code here
iCounter=iCounter+1
If iCounter = 100 then
DoEvents
iCounter=0
End if
Loop
Это позволяет DoEvents запускать слишком часто, а ваш общий код замедляется. Отрегулируйте счетчик на любую итерацию, которая вам подходит.
Для будущих поколений, если сообщение, связанное с сообщением в принятом ответе, утеряно или нечеткое для кого-то, необходим соответствующий код:
<?php
$myarray = glob("*.*");
usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));
?>
Протестировано это в моей системе и проверил его сортирует файл mtime по желанию. Я использовал аналогичный подход (написанный на Python) для определения последних обновленных файлов на моем сайте.
<?php
$items = glob('*', GLOB_NOSORT);
array_multisort(array_map('filemtime', $items), SORT_NUMERIC, SORT_DESC, $items);
array_map
в качестве аргумента, который должен быть передан по ссылке. Вы отсортируете его, а потом что? У вас его больше нет.
– Okonomiyaki3000
15 April 2014 в 06:47
array_map
используется для сортировки массива $items
, который также передается по ссылке.
– Alf Eaton
15 April 2014 в 21:34
array_multisort
php.net. Я думаю, что для этой задачи есть более подходящие функции, но я заберу свой downvote. Или я бы, если бы мог ... извините.
– Okonomiyaki3000
16 April 2014 в 06:18
Это решение такое же, как принятый ответ , обновленный анонимной функцией1:
$myarray = glob("*.*");
usort( $myarray, function( $a, $b ) { return filemtime($a) - filemtime($b); } );
1 Анонимные функции были введены в PHP в 2010 году. Оригинальный ответ датирован 2008 годом.