Implementing Stable Sort

Learn about the key differences between stable and unstable sorts and how to implement a stable sort.

When designing the logic for array sorting, the original PHP developers sacrificed stability for speed. At the time, this was considered a reasonable sacrifice. However, if complex objects are involved in the sorting process, a stable sort is needed.

In this lesson, we’ll discuss what stable sort is and why it’s important. If we can ensure that data is stably sorted, our application code will produce more accurate output, which results in greater customer satisfaction. Before we get into the details of how PHP 8 enables stable sorting, we first need to define what a stable sort is.

Understanding stable sorts

When the values of properties used for the purposes of a sort are equal, in a stable sort, the original order of elements is guaranteed. Such a result is closer to user expectations. Let’s have a look at a simple dataset and determine what would comprise a stable sort. For the sake of illustration, let’s assume our dataset includes entries for access time and username:

Get hands-on with 1200+ tech skills courses.