I encountered a strange behavior of Magento 1.8 after changing php version from 5.5 to 7.0.
This strange behavior is due to a change in the work function uasort
From the usort() documentation:
Note: If two members compare as equal, their relative order in the sorted array is undefined.
This is what you're seeing here. PHP 7 uses a different, partially stable sorting algorithm, so elements that compare equal according to your sorting function may now have a different order.
If you care about the sorting order of equal elements (and this is not just a testing issue), you should make it explicit in your comparison function.