Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Sort an array with a user-defined comparison function and maintain index association
<?php uasort(array &$array, callable $callback): true
<?php         $arr = $this->all();



        uasort($arr, function ($a, $b) use ($sorts) {

            foreach ($sorts as $sort) {

                $bits = explode(':', $sort);

                $sort_by = $bits[0];

                $sort_dir = array_get($bits, 1);



                [$one, $two] = $this->getSortableValues($sort_by, $a, $b);



                $result = Compare::values($one, $two);



                if ($result !== 0) {

                    return ($sort_dir === 'desc') ? $result * -1 : $result;

                }

            }



            return 0;

        });



        return new static($arr);

    }