Как улучшить производительность usort(), когда функция обратного вызова вызывает функцию для обоих сравниваемых значенийPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как улучшить производительность usort(), когда функция обратного вызова вызывает функцию для обоих сравниваемых значений

Сообщение Anonymous »

У меня проблема, похожая на эту публикацию: массив сортировки PHP по номеру в имени файла
Я использовал это решение usort():

Код: Выделить всё

usort($photos, function ($a, $b) {
return strstr($a, '_')  strstr($b, '_');
});
Массив выглядит следующим образом:

Код: Выделить всё

array (
0 => 'photo-Cname_0111.jpg',
1 => 'photo-Aname_0112.jpg',
2 => 'photo-Bname_0222.jpg',
3 => 'photo-Cname_0222.jpg',
4 => 'photo-Aname_0333.jpg',
5 => 'photo-Bname_0333.jpg',
)
Проблема заключается в том, что массив содержит 1000 элементов и выполнение занимает около 9 секунд.
Как можно ускорить сортировку?

Подробнее здесь: https://stackoverflow.com/questions/688 ... -a-functio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»