Как улучшить производительность 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

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