Home  >  Article  >  Backend Development  >  New numerical sorting function in PHP8.1

New numerical sorting function in PHP8.1

王林
王林Original
2023-07-09 22:07:351028browse

New numerical sorting function in PHP8.1

PHP is a widely used open source scripting language, often used in web development. Not only is it powerful, it also has a rich built-in function library. In the recently released version of PHP 8.1, some interesting features and functions have been added, including numerical sorting functions. These new functions can make it easier for developers to sort numerical arrays, improving development efficiency and code readability.

In past PHP versions, we usually used the sort() or rsort() function to sort arrays, but these functions used dictionary sorting by default , that is, sorting according to the comparison rules of strings. This may lead to unexpected results when sorting an array of numbers. In PHP8.1, two new functions, usort() and uasort(), can be used to sort arrays according to custom sorting rules, including numerical sorting.

Next, we will introduce the usage of these two new functions and demonstrate their functions through sample code.

The first is the usort() function, which accepts two parameters: the array that needs to be sorted and a custom comparison function. This function calls a custom function multiple times during the sorting process to compare the elements in the array to determine their order. The custom function needs to return an integer value representing the comparison result of two elements.

The following is a sample code that uses the usort() function to sort a numeric array from small to large:

$numbers = [5, 2, 8, 1, 9];

usort($numbers, fn($a, $b) => $a - $b);

print_r($numbers);

The output result is: Array ( [0 ] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 ). As you can see, the numbers in the array have been sorted from small to large.

Similar to the usort() function, the uasort() function also accepts two parameters: the array to be sorted and a custom comparison function. The difference is that the uasort() function retains the key-value relationship of the array during the sorting process, rather than just sorting based on value.

The following is a sample code that uses the uasort() function to sort an associative array from large to small:

$grades = [
    'Alice' => 85,
    'Bob' => 92,
    'Charlie' => 78,
    'David' => 89
];

uasort($grades, fn($a, $b) => $b - $a);

print_r($grades);

The output result is: Array ( [ Bob] => 92 [David] => 89 [Alice] => 85 [Charlie] => 78 ). As you can see, the elements in the array are arranged in descending order, and the key-value relationship remains unchanged.

To summarize, the new numerical sorting functions usort() and uasort() in PHP8.1 provide developers with more flexible sorting options, making it easier to Sorting of numeric arrays is more convenient and efficient.
Whether it is from small to large or large to small, these two functions can meet the needs of developers through customized comparison functions. In actual applications, we can choose to use these two functions according to different sorting requirements to improve the readability and maintainability of the code.

If you are still using the old sorting method to sort numeric arrays, you might as well try these two new functions. I believe they will surprise you. Let us welcome the new features of PHP8.1 together, improve development efficiency, and write more elegant code!

The above is the detailed content of New numerical sorting function in PHP8.1. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn