Home > Article > Backend Development > Sort arrays according to custom sorting rules in PHP, retaining original key names
In PHP, use the uasort() function to sort an array by custom sorting rules while retaining the original key names. A custom comparison function is a function that takes two elements as input and returns an integer: a negative number means the former is less than the latter, zero means they are equal, and a positive number means the former is greater than the latter.
How to sort the array according to custom sorting rules in PHP and retain the original key names
In PHP, sort the array by custom sorting rules Defining collation rules to sort arrays is a common need. For example, you might want to sort a product list by product name, price, or other custom criteria.
PHP provides a built-in function uasort()
that allows you to sort an array using a custom comparison function while preserving the original key names.
Syntax
uasort ( array &$array , callable $value_compare_func ) : bool
$array
- Array to be sorted$value_compare_func
- Custom comparison function, returns positive number, negative number or zeroCustom comparison function
The custom comparison function is a function used to compare array elements . It takes two parameters $a
and $b
as input and returns an integer according to the following rules:
$a
is less than $b
, then a negative number is returned. $a
is equal to $b
, zero is returned. $a
is greater than $b
, return a positive number. Practical case
The following is an example of a custom comparison function that compares the length of two strings:
<?php function compare_string_length($a, $b) { return strlen($a) - strlen($b); }
Sorting the Array
Now let us sort the array by custom sorting rules. The following example will sort an array by string length from smallest to largest:
<?php $fruits = array("apple", "banana", "orange", "grapefruit"); uasort($fruits, "compare_string_length"); print_r($fruits);
Output:
Array ( [grapefruit] => grapefruit [orange] => orange [apple] => apple [banana] => banana )
As you can see, the array is now sorted by string length from shortest to largest , while retaining the original key names.
The above is the detailed content of Sort arrays according to custom sorting rules in PHP, retaining original key names. For more information, please follow other related articles on the PHP Chinese website!