Как уже отмечали другие, вам нужно отсортировать по более чем одну клавишу. PHP обеспечивает это с помощью compare_func
, а также космический корабль <=>
* ("). ") для вашего удобства при написании таких функций.
Если ваш compare_func
обнаружит, что points
равен, он должен продолжить сравнение date
и т. д., возвращая первое значение, которое не является нуль. (для этого можно использовать оператор or
.)
И, если все ключей сортировки равны, поведение usort()
является «непредсказуемым». В этом случае вы не должны предполагать, что записи будут представлены в каком-либо определенном порядке ... даже от одного вызова к usort()
к следующему. Если вы думаете, что «эта версия PHP« всегда »делает это таким образом, а эта версия« всегда »делает это каким-то другим образом», предположите, что вы просто ошибаетесь.