The methods for sorting arrays in PHP are: use the sort() function to sort in ascending order. Use the rsort() function to sort in descending order. Use the asort() function to sort values in an associative array in ascending order. Use the arsort() function to sort values in descending order for an associative array. Use custom comparison functions for more complex sorting.
How to sort PHP array based on comparison of array values
In PHP, there are many ways to sort PHP array based on comparison of array values The comparison sorts the array. This article will introduce the use of built-in functions sort()
, rsort()
, asort()
, arsort()
and custom comparison functions Common ways to sort arrays.
Use sort()
function:
sort()
The function sorts the values in the array from small to large Ascending.
$arr = [3, 5, 2, 7, 1]; sort($arr); print_r($arr); // 输出: [1, 2, 3, 5, 7]
Use rsort()
function:
rsort()
The function sorts the values in the array from large to small Small in descending order.
$arr = [3, 5, 2, 7, 1]; rsort($arr); print_r($arr); // 输出: [7, 5, 3, 2, 1]
Use asort()
function:
##asort() The function sorts the values in the associative array from small to small Large ascending order, keys remain unchanged.
$arr = [ "name" => "John", "age" => 30, "city" => "New York" ]; asort($arr); print_r($arr); // 输出: [ // "age" => 30, // "city" => "New York", // "name" => "John" // ]
Use arsort() function:
arsort() The function sorts the values in the associative array from large to large Sort in descending order to the smallest, the keys remain unchanged.
$arr = [ "name" => "John", "age" => 30, "city" => "New York" ]; arsort($arr); print_r($arr); // 输出: [ // "name" => "John", // "city" => "New York", // "age" => 30 // ]
Use custom comparison functions:
For more complex sorting requirements, you can use custom comparison functions. The comparison function accepts two arguments and returns -1, 0, or 1, depending on whether the first argument is less than, equal to, or greater than the second argument.function custom_sort($a, $b) { return strcmp($a["name"], $b["name"]); } $arr = [ ["name" => "John", "age" => 30], ["name" => "Mary", "age" => 25], ["name" => "Bob", "age" => 35] ]; usort($arr, "custom_sort"); print_r($arr); // 输出: [ // ["name" => "Bob", "age" => 35], // ["name" => "John", "age" => 30], // ["name" => "Mary", "age" => 25] // ]
Practical case:
The following is a practical case that shows how to use thesort() function to sort an array of video game characters by name Sort in ascending order:
$characters = [ ["name" => "Mario", "level" => 5], ["name" => "Luigi", "level" => 3], ["name" => "Donkey Kong", "level" => 7] ]; sort($characters); print_r($characters); // 输出: [ // ["name" => "Donkey Kong", "level" => 7], // ["name" => "Luigi", "level" => 3], // ["name" => "Mario", "level" => 5] // ]
The above is the detailed content of In PHP, how to sort an array based on comparison of array values?. For more information, please follow other related articles on the PHP Chinese website!